xss 攻击解决方法

反射型:
游览器中输入:http://192.168.0.1:8888/load?pState=0&nStat=0&depart=0000</script><script>alert(1)</script>edd=&de_el=1,会出现弹框。
解决方式:
方式1.在nodeserver 中的 app.js里面添加如下:
    var xss = require('xss-clean');

    app.use(xss());  //这个比较好用

    或者:

    const xssFilter = require("x-xss-protection");
    app.use(xssFilter()); //这个不太管用

    上面两种都需要安装 npm install

方式2.如何用到nginx

    在nginx.conf中的 server {}里面添加如下:
        #防XSS攻击
        #add_header X-Xss-Protection 0;                                --可以不加
        #add_header X-Frame-Options 'SAMEORIGIN';         --可以不加
        #add_header X-XSS-Protection '1; mode=block';        --可以不加
        #add_header X-Content-Type-Options nosniff;            --可以不加
        set $block_xss 0;
        if ($query_string ~ "base64_(en|de)code(.*)")
        { set $block_xss 1; }
        if ($request_uri ~ "base64_(en|de)code(.*)") { set $block_xss 1; }
        if ($query_string ~ "(<|%3C)*.script.*(/?>|%3E)")
        { set $block_xss 1; }
        if ($request_uri ~ "(<|%3C)*.script.*(/?>|%3E)") { set $block_xss 1; }
        if ($query_string ~ "(<|%3C)*.iframe.*(/?>|%3E)")
        { set $block_xss 1; }
        if ($request_uri ~ "(<|%3C)*.iframe.*(/?>|%3E)") { set $block_xss 1; }
        if ($query_string ~ "GLOBALS(=|[|%[0-9A-Z]
        {0,2})")
        { set $block_xss 1; }
        if ($query_string ~ "_REQUEST(=|[|%[0-9A-Z]{0,2}
        )")
        { set $block_xss 1; }
        if ($block_xss = 1)
        { return 403; } 

方式3:在ejs模板文件中

如果是如下 <%- params %> 格式
var nid = JSON.parse(JSON.stringify(<%- nid %>));
var depId = JSON.parse(JSON.stringify(<%- depId %>));

改写成  <%= params %>格式

var nid = JSON.parse(JSON.stringify(<%= nid %>));

var depId = JSON.parse(JSON.stringify(<%= depId %>));

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值