白帽子讲web安全笔记-xss总结

xss攻击的本质就是攻击者构造的javascript代码得到执行,任何javascript能做到的事情,xss payload都能做到。如果执行的时候恰好也是处于受害者登录的状态,那么危害将更为严重。

有三种形式的xss

反射型xss

用户输入的内容被提交给服务器后,又返回到客户端得到执行

存储型xss

用户输入的内容被提交给服务器后,被保存到数据库,然后当从数据库查询返回的时候,xss payload得到执行

DOM based xss

产生这类xss的本质原因是,在设计web应用程序的时候,就相信用户的输入。所以会在前端的javascript代码使用用户控制的输入,并输出到html中,并且从头到尾都是在客户端,没有和服务器的交互。
所以,不相信用户输入是该在设计应用的时候就要有的意识。

防御xss

最好的办法是使用安全编码,有三种类型的安全编码,Urlencode,javascriptEncode,htmlEncode。对于用户可以控制的输入变量$var,如果是输出到url,就使用Urlencode,如果是输出到事件或者脚本,就使用javascriptEncode,如果是输出到html内容或者属性,就使用htmlEncode。

利用xss

1.诱导受害者点击一个恶意链接,这个恶意链接或者包含恶意js代码,或者跳转到包含恶意js代码的页面。
2.存储型

猜你喜欢

转载自blog.csdn.net/leonard_wang/article/details/78859431