xss跨站攻击原理

https://www.cnblogs.com/frankltf/p/8975010.html

跨站脚本攻击:通过对网页注入可执行代码且成功地被浏览器执行,达到攻击的目的,一旦攻击成功,它可以获取用户的联系人列表,然后向联系人发送虚假诈骗信息,可以删除用户的日志等等。有时候还和其他攻击方式同时实施比如SQL注入攻击服务器和数据库、Click劫持、相对链接劫持等实施钓鱼。

执行条件:

  1. 需要向web页面注入恶意代码;
  2. 这些恶意代码能够被浏览器成功的执行。

XSS攻击方式

  • XSS存储型攻击:恶意代码被保存到目标网站的服务器中,这种攻击具有较强的稳定性和持久性,比较常见场景是在博客,论坛等社交网站上,
  • XSS反射型攻击:意代码并没有保存在目标网站,通过引诱用户点击一个链接到目标网站的恶意链接来实施攻击的。
  • xss存储型攻击示例:用户可以一html的方式上传一次文章,如果黑客用户在上传文章时,在html里加入了一些违规的js代码,那么其他用户在访问这篇文章时,浏览器会默认执行黑客上传的js代码,从而完成了对其他用户攻击
  • xss反射型攻击方式:有时前端html页面需要把get方式传回来的字段显示到页面上,这时如果黑客在传的字段后加上一段js代码,则也是有可能被执行的。

防御方式:

  • 将前端提交的数据编码转义:一般表单提交的时候完全可以用strip_tags函数去除html标签,如果涉及到富文本编辑器需要保留html标签,可以用htmlspecialchars对提交数据进行过滤,从而转换(& < > ’ ” )这几个字符;还有可以利用htmlentities函数转换所有的html标记
原文地址:https://www.cnblogs.com/bneglect/p/10917395.html