Spring默认HTMLescape不';无法防止xss攻击

Spring默认HTMLescape不';无法防止xss攻击,spring,xss,Spring,Xss,我想在我的spring应用程序中防止xss攻击 我补充说 <context-param> <param-name>defaultHtmlEscape</param-name> <param-value>true</param-value> </context-param> 我错了什么 附笔。 我在刷新后使用javascript加载内容我的观点有点争议,但我认为您应该验证并拒绝入站XSS

我想在我的spring应用程序中防止xss攻击

我补充说

 <context-param>
        <param-name>defaultHtmlEscape</param-name>
        <param-value>true</param-value>
  </context-param>
我错了什么

附笔。
我在刷新后使用javascript加载内容

我的观点有点争议,但我认为您应该验证并拒绝入站XSS。您也应该在输出时转义它,但它首先不应该在数据库中,因为dbs是持久的,并且常常是跨应用程序的

在JSoup中使用Hibernate验证器(您不需要使用Hibernate ORM),以避免数据库中出现XS:

Foo.java

@Entity
class Foo {

  @SafeHtml(whitelistType = SafeHtml.WhiteListType.NONE)
  private String name;

  ...
}
@Controller
public class FooController {

  @RequestMapping(method=POST)
  String submit(@Validated Foo foo) {
     ...
  }

}
FooController.java

@Entity
class Foo {

  @SafeHtml(whitelistType = SafeHtml.WhiteListType.NONE)
  private String name;

  ...
}
@Controller
public class FooController {

  @RequestMapping(method=POST)
  String submit(@Validated Foo foo) {
     ...
  }

}
pom.xml

    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-validator</artifactId>
        <version>5.1.2.Final</version>
    </dependency>

    <dependency>
        <groupId>org.jsoup</groupId>
        <artifactId>jsoup</artifactId>
        <version>1.8.1</version>
    </dependency>

org.hibernate

为了获得更多的反XSS措施,我使用JSTL。在jsp页面中包含c前缀

对于要显示的值

在这种情况下,设置属性
excapeXml=“true”
是可选的,因为其默认值为true


该属性只会影响弹簧表单标签的使用,而不是通用解决方案。hm。你能提供一些更一般的建议吗?谷歌会给你几种解决方案……我认为默认情况下这是正确的。看看这个答案是否有助于您了解问题所在:这并不能阻止XSS攻击内容在您的数据库中卷起,op的尝试至少可以实现这一点。因此,我认为这是一个不完整且可能误导/危险的答案。