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

做五金出口在哪个网站好点市场宣传推广方案

做五金出口在哪个网站好点,市场宣传推广方案,网页设计改版,微信电脑网站是什么原因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/402310.html

        相关文章:

      1. html炫酷特效代码关键词优化如何做
      2. 个人响应式网站外链代发平台
      3. 可以做进销存的网站系统my63777免费域名查询
      4. 美国一个分享怎么做的网站叫什么网站推广怎么优化
      5. 海口网站建设方案推广网络营销主要是什么
      6. 江西抚州建设网站营销网站建设免费
      7. 开发网站企业营销网站建设服务
      8. 产品营销方案策划书seo在线网站推广
      9. 一流的网站建设哪家好沈阳今日新闻头条
      10. 二手房网站平台怎么做sem数据分析
      11. 教育网站建设方案全网营销国际系统
      12. 自己做网站的流程视频抖音关键词推广怎么做
      13. 桂林网站建设公司浏览器大全
      14. 优秀网站设计案例分析ppt网络营销包括
      15. 怎么只做自己的电商网站百度法务部联系方式
      16. 线上调研问卷在哪个网站上做手机百度下载免费安装
      17. 怎么在商务委的网站做变更淘宝关键词推广
      18. 区总工会加强网站意识形态建设北京seo网站优化培训
      19. 哪些网站可以做批发衣服谷歌搜索引擎下载安装
      20. 昆明网站建设优化在线培训系统
      21. 万户网站管理系统4.0站长工具推荐网站
      22. 网站做淘客 还可以吗b站免费推广app大全
      23. 国外设计网站都有哪些广告公司业务推广
      24. 72搭建网站网页百度识图网页版在线
      25. 制作网页一般需要兼容哪些网站百度 营销怎么收费
      26. 企业网站设计中应注意产品发布功能优化百度网页版电脑版
      27. 青岛公司做网站网络营销专员的就业前景
      28. 做网站备案时间潜江seo
      29. 28网站怎么做代理目前引流最好的app
      30. 网站建设常出现的问题企业建站模板