【问题标题】:Lack of example escaping special characters in struts2struts2 中缺少转义特殊字符的示例
【发布时间】:2010-04-15 09:59:45
【问题描述】:

今天在谷歌上搜索我找不到示例或提及最佳实践:如何在 Struts2 中转义用户输入。 当然我可以在 validate() 方法上手动转换字符,但是看起来太明显了。那么可能存在一些自动化来避免代码/脚本注入?

【问题讨论】:

    标签: java struts2 escaping code-injection


    【解决方案1】:

    有基本的功能/良好的做法:property tag 默认转义 html 特殊字符,所以只要你保持过滤(见 'escape' 和 'escapeJavascript' 属性),你是相当安全的 - 在尊重。

    对于检查 web 应用中所有用户输入的更一般情况(理论上,您可以扩展参数拦截器或组成另一个拦截器或过滤器),几乎不可能建立一些通用规则(哪些字符/模式被禁止?)以及该怎么做(默默地删除它们或抛出一些验证错误/警告?)。

    也许您正在考虑要在网页中显示的用户输入的更特殊情况(通常是用户 cmets),并且可以接受一组受限的 html 标记。在这种情况下,我会特别处理这些字段,也许是通过编写一些实用程序清理代码并将其插入相应的 setter 或 getter 中。一个更复杂的解决方案是为这些字段定义您自己的类(比如 UserComment)——该类基本上会包装一个字符串,然后我会编写一个相应的 Type Converter 来负责清理。同样,您必须决定在禁止字符/标签的情况下采取什么措施。

    【讨论】:

      猜你喜欢
      • 2023-03-29
      • 1970-01-01
      • 2018-10-02
      • 1970-01-01
      • 1970-01-01
      • 2012-06-02
      • 2021-08-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多