如何保护已构建的Spring Web应用程序免受XSS和CSRF攻击?

时间:2015-10-09 06:12:04

标签: java spring spring-mvc spring-security csrf

我使用spring 4.2.0.RELEASE完全构建了我的Web应用程序。现在在测试期间,我发现该应用程序容易受到XSS和CSRF攻击。我需要知道如何以最小的努力保护它(/现有代码的更改)。

我已经参考了这个spring文档:它说,

  

从Spring Security 4.0开始,默认情况下启用CSRF保护   XML配置。

所以我认为我需要使用spring security。所以我添加了pom dependancies:

    <!-- Spring Security -->
    <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-web</artifactId>
        <version>${spring.security.version}</version>
    </dependency>

    <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-config</artifactId>
        <version>${spring.security.version}</version>
    </dependency>

但是我所有的指南和教程都是指配置Spring安全性要求,登录功能的变化。基本上春天安全负责登录。但我不想改变它,我只需要使用Spring安全性的一些功能。基本上是CSRF令牌和XSS相关的功能,我可以这样做吗?

我添加了pom依赖,就是这样。我还需要做什么?有什么好的参考我无法找到。我正在使用STS进行项目 我已提到this:但它也要求进行弹簧认证。

1 个答案:

答案 0 :(得分:0)

首先,您需要将Spring安全性集成到Web应用程序中。它有很多教程。然后你可以像

一样启用
<!DOCTYPE html>
<html>
<head>
    <title>Matching Game</title>
    <style>
        img {position:absolute;}
        div {position:absolute; width:500px; height:500px;}
        #RightSide { left: 500px; 
            border-left: 1px solid black }

    </style>
    <script>
        var numberOfFaces = 5;
        var theLeftSide = document.getElementById("LeftSide");

        function generateFaces() {
            var count = 0;
            while(count <= numberOfFaces){
                var imgFace = document.createElement("img");
                img.src="http://home.cse.ust.hk/~rossiter/mooc/matching_game/smile.png";
                var random_nr = Math.random() * 400;
                random_nr = Math.floor(random_nr);
                imgFace.style.top = random_nr + "px";
                imgFace.style.left = random_nr + "px";
                theLeftSide.appendChild(imgFace);
                count++;

            }
        }
    </script>
</head>
<body onload="generateFaces()">
    <h1>Matching Game</h1>
    <p>Click on the extra smiling face on the left</p>
    <div id="LeftSide">
    </div>
    <div id="RightSide">
    </div>
</body>
</html>

在春季安全文件http://docs.spring.io/spring-security/site/docs/4.0.x/reference/htmlsingle/#csrf-configure中,指出;

<http>
  <!-- ... -->
  <csrf disabled="true"/>
</http>