当前位置: 首页 > wzjs >正文

怎样做淘客网站怎么推广自己的微信号

怎样做淘客网站,怎么推广自己的微信号,网络营销的常见工具有什么,vps主机可以做几个网站1、EL注入简介 Expression Language Injection (EL注入)是一种安全漏洞,攻击者能够注入并执行恶意的EL表达式,导致服务器端代码执行、敏感信息泄露或服务拒绝等安全问题。在Java EE环境中,特别是使用JSP(JavaServer Pages&#x…

1、EL注入简介

Expression Language Injection (EL注入)是一种安全漏洞,攻击者能够注入并执行恶意的EL表达式,导致服务器端代码执行、敏感信息泄露或服务拒绝等安全问题。在Java EE环境中,特别是使用JSP(JavaServer Pages)技术的应用程序中,EL用于简化页面逻辑处理和数据展示。如果未正确处理用户输入,攻击者可以通过构造恶意输入来执行任意代码或者访问敏感信息。

EL注入的工作原理类似于其他注入攻击:

1、应用程序接收用户输入

2、未经验证或转义就将用户输入作为EL表达式处理

3、服务器解析并执行这些表达式,可能导致恶意操作

2、攻击原理

2.1、EL 表达式的解析

在 buildConstraintViolationWithTemplate 中,${...} 是一种表达式语言(EL)语法,Hibernate Validator 默认会解析这些表达式。

如果用户输入的内容直接被嵌入到错误消息模板中,并且没有经过适当的清理或转义,攻击者可以通过构造恶意输入来执行任意 EL 表达式。

2.2、潜在风险

  1. 攻击者可以利用 EL 表达式访问系统对象(如环境变量、文件系统等),甚至执行任意代码。
  2. 这种漏洞可能导致信息泄露、权限提升或其他严重后果。

2.3、示例攻击

假设某个字段允许用户输入值,并且该值直接被插入到错误消息模板中:

@Overridepublic boolean isValid(String value, ConstraintValidatorContext context) {if (value == null || value.isEmpty()) {context.disableDefaultConstraintViolation(); context.buildConstraintViolationWithTemplate("Invalid value: ${validatedValue}")               .addConstraintViolation();        return false;    }    return true;
}

如果用户输入如下内容:

${T(java.lang.Runtime).getRuntime().exec('rm -rf /')}

当 EL 表达式被解析时,这将尝试执行系统命令 rm -rf /,从而导致严重的安全问题。

3、Spring 中易导致EL注入的API

以下Spring框架中的API容易导致EL注入问题:

1、Spring Expression Language (SpEL)

  1. SpelExpressionParserEvaluationContext ConstraintValidatorContext 相关方法(如:buildConstraintViolationWithTemplate),这些类用于解析和评估Spring表达式语言(SpEL),如果开发者不谨慎处理用户输入,就可能存在注入风险。
  2. @Value 注解中使用SpEL表达式,在Spring配置类或组件中使用@Value注解时,如果值来源于不可信来源且包含SpEL表达式,则可能导致安全问题。

2、JSP EL表达式

在JSP页面中直接使用 ${userInput}

3、Spring MVC 视图层

Thymeleaf、FreeMarker等模板引擎中不安全的表达式处理Spring Boot默认支持Thymeleaf作为视图层技术,虽然Thymeleaf默认是安全的,但如果启用了不安全的特性或错误地配置了模板引擎,仍有可能导致类似的注入问题。

4、Spring Data查询

使用SpEL的 @Query 注解

4、EL注入的解决方案

为了避免这种攻击,可以采取以下措施:

1 禁用 EL 表达式解析
  • Hibernate Validator 允许通过配置禁用 EL 表达式的解析。这是最直接和推荐的方法。 
  • 设置系统属性 hibernate.validator.el.enabled 为 false
  • System.setProperty("hibernate.validator.el.enabled", "false");
  • 在 Spring Boot 应用中,通过 application.properties 配置:
spring.jpa.properties.hibernate.validator.el.enabled=false

2、避免直接使用用户输入作为模板内容

不要直接将用户输入嵌入到错误消息模板中。可以通过硬编码模板或对用户输入进行严格的验证和清理来避免问题。

@Overridepublic boolean isValid(String userInput, ConstraintValidatorContext context) { if (!isValidLogic(userInput)) {        String safeMessage = "Invalid input"; // 使用固定的错误消息        context.disableDefaultConstraintViolation();context.buildConstraintViolationWithTemplate(safeMessage).addConstraintViolation();        return false;    }    
return true;
}

3、使用占位符而非 EL 表达式

  • 如果需要动态生成错误消息,可以使用占位符(如 {0}),并通过参数化的方式传递值,而不是依赖 EL 表达式。
@Overridepublic boolean isValid(String userInput, ConstraintValidatorContext context) {if (!isValidLogic(userInput)) {        context.disableDefaultConstraintViolation();context.buildConstraintViolationWithTemplate("Invalid input: {0}") .addPropertyNode("fieldName").addConstraintViolation();        return false;    }    return true;
}

4、升级到最新版本 

    • 确保使用的 Hibernate Validator 和相关库是最新版本,因为较新的版本可能已经修复了已知的安全漏洞。

    5、输入验证与过滤

      • 对所有用户输入进行严格的验证。
      • 过滤或转义EL表达式特殊字符如 ${}, #, T(), new 等

      6、使用安全的API配置

        // 使用SimpleEvaluationContext代替StandardEvaluationContextEvaluationContext context = SimpleEvaluationContext.forReadOnlyDataBinding().build();

        5、总结

        • 风险点
          • buildConstraintViolationWithTemplate 方法默认支持 EL 表达式解析,如果用户输入被直接嵌入到模板中,可能导致 EL 注入攻击。
        • 解决方案
          1. 禁用 EL 表达式解析(推荐)。
          2. 避免直接使用用户输入作为模板内容。
          3. 使用占位符或硬编码的错误消息。
          4. 升级到最新的 Hibernate Validator 版本。
          5. 输入验证与过滤
          6. 使用安全的API配置

        通过采取上述措施,可以有效防止 buildConstraintViolationWithTemplate 导致的 EL 注入攻击,确保应用程序的安全性。

        http://www.dtcms.com/wzjs/395811.html

        相关文章:

      1. 建设行业信息和技术应用服务网站户外广告
      2. 公司做二手网站的用意官网百度
      3. 怎么做自己的网址深圳网站优化软件
      4. 如何弄微信小程序西安官网seo公司
      5. 做电影网站需要多大空间优质外链平台
      6. 免费电商网站建设做品牌推广应该怎么做
      7. 我厂有大量手工活外发加工seo线下培训班
      8. 在eclipse中做网站开发新开传奇网站发布站
      9. 怎样找素材做网站seo对网络推广的作用是什么?
      10. 广东网站设计公司价格腾讯新闻最新消息
      11. 佛山网站建设公司电话百度竞价排名规则
      12. wordpress爆破软件seo分析是什么意思
      13. 站长工具国产2023网络营销心得体会800字
      14. 自己的网站怎么做实时监控百度搜索什么关键词能搜到网站
      15. 免费发布信息网站大全下载安装店面怎么做位置定位
      16. 做网站劫持多少钱搜索引擎最佳化
      17. 网站建设公司百度指数平台
      18. 中国航天建设集团有限公司网站app代理推广合作50元
      19. 南宁有什么做网站的好公司百度统计平台
      20. 惠州建网站公司seo服务价格表
      21. 网站的支付系统怎么做的seo诊断分析在线工具
      22. 免费网站模板源码网页快速收录
      23. 建立网站的主要流程有哪些步骤百度一下网页打开
      24. 小程序源码模板下载东莞seo报价
      25. wordpress 制作手机站国内网络营销公司排名
      26. 贵阳网站建设运营网站关键词排名查询工具
      27. 沧州市网站设计重庆seo
      28. 开发公司网签价格郑州企业网站优化排名
      29. wordpress网站好优化吗市场推广seo职位描述
      30. 怎么做bbs论坛网站吸引人的微信软文范例