用户工具

站点工具


start:fix

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

start:fix [2017/06/07 05:45] (当前版本)
xss 创建
行 1: 行 1:
 +xss从原理上其实还是蛮简单的,攻击者输入xss payload,受害者访问触发js。从修复上来说,其实也是从两个方面来防御,一个是输入,一个是输出。
  
 +# 输入
 +输入的话,也是看情况。看用户输入的场景,规定好字符串正则表达式是一劳永逸的方法,白名单的方法总好过黑名单。实在没办法,过滤掉<​、>​、'​、"​这四个字符应该可以阻挡大部分的xss payload。需要注意的是,这些过滤操作必须在后端进行,否则改个包就绕过了
 +
 +# 输出
 +输出涉及到浏览器的解码顺序,在某些重合的位置可能浏览器会进行三层解码,大多数情况依次为html解码,url解码,js解码,可想而知,我们对于某个变量的编码顺序就是反过来,js编码,url编码,html编码,这样就保证了浏览器正常的解析,不会被xss payload破坏正常的语法结构
start/fix.txt · 最后更改: 2017/06/07 05:45 由 xss