如何修复JSP表达式标记中的跨站点脚本(XSS)

时间:2018-03-05 06:22:52

标签: javascript java jsp xss

我不确定如何在Jsp中修复scriptlet标记的跨站点脚本(持久性)例如

<%=值%GT; “/>  我还附加了一个有scriptlet示例的图片我不知道如何解决这些问题,请通过证明一些修正来帮助我修复enter image description here

1 个答案:

答案 0 :(得分:-1)

您可以通过框架配置进行控制。在Spring Security Framework中使用以下代码(https://docs.spring.io/spring-security/site/docs/current/reference/html/headers.html#headers-xss-protection):

一些浏览器内置支持过滤掉反射的XSS攻击。这绝不是万无一失的,但确实有助于XSS保护。

默认情况下,通常启用过滤,因此添加标头通常只会确保它已启用,并指示浏览器在检测到XSS攻击时要执行的操作。例如,过滤器可能会尝试以最少侵入性的方式更改内容以仍然呈现所有内容。有时,这种类型的替换本身可能成为XSS漏洞。相反,最好阻止内容而不是尝试修复它。为此,我们可以添加以下标题:

X-XSS-Protection: 1; mode=block

默认情况下包含此标头。但是,如果需要,我们可以自定义它。例如:

<http>
    <!-- ... -->

    <headers>
        <xss-protection block="false"/>
    </headers>
</http>

同样,您可以使用以下命令在Java Configuration中自定义XSS保护:

@EnableWebSecurity
public class WebSecurityConfig extends
WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
        // ...
        .headers()
            .xssProtection()
                .block(false);
    }
    }