用户工具

站点工具


start:fix

xss从原理上其实还是蛮简单的,攻击者输入xss payload,受害者访问触发js。从修复上来说,其实也是从两个方面来防御,一个是输入,一个是输出。

输入

输入的话,也是看情况。看用户输入的场景,规定好字符串正则表达式是一劳永逸的方法,白名单的方法总好过黑名单。实在没办法,过滤掉<、>、'、“这四个字符应该可以阻挡大部分的xss payload。需要注意的是,这些过滤操作必须在后端进行,否则改个包就绕过了

输出

输出涉及到浏览器的解码顺序,在某些重合的位置可能浏览器会进行三层解码,大多数情况依次为html解码,url解码,js解码,可想而知,我们对于某个变量的编码顺序就是反过来,js编码,url编码,html编码,这样就保证了浏览器正常的解析,不会被xss payload破坏正常的语法结构

start/fix.txt · 最后更改: 2017/06/07 05:45 由 xss