前端——XSS攻击初步认识

XSS攻击

1.什么是XSS攻击

1.1 定义

百度百科.XSS攻击通常指的是利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是JavaScript,也包括Java、Flash甚至是普通的HTML。攻击成功后,攻击者可能得到包括但不限于更高的权限如执行一些操作(劫持用户对话、插入恶意内容、重定向用户、使用恶意软件劫持用户浏览器、繁殖XSS蠕虫、修改路由配置信息等)、私密网页内容、会话和Cookie等各种内容。

1.2 原理

百度百科HTML是一种超文本标记语言,不同的标签会有不同的语义化情况,我们常见的符号(<)被看做是HTML标签的开始标签,当这些HTML标签被动态的插入到了动态页面中,用户浏览器会将其误认为是插入了HTML标签,这时若将其闭合之间插入一段JavaScript脚本时,这些脚本程序就会在用户浏览器中执行。所以当这些特殊字符不能被动态页面检查或检查出现错误的时候,就将会产生XSS漏洞

1.3示例

大佬举例
又一大佬举例
大概的意思就是说,当我们使用表单提交的情况,如果在表单提交的输入框中输入一些JavaScript指令,来注入到该程序中使程序不按照正常的情况进行运转。

2.什么情况可能会遭遇XSS攻击

优秀来源
1.HTML内嵌的文本中,恶意内容以script标签注入
2.在内联的JavaScript中,拼接的数据突破了原本的限制(字符串,变量,方法名等)。
3.在标签属性中,恶意内容包含引号,从而突破属性值的限制,注入其他属性或标签。
4.在标签的href、src等属性中,包含JavaScript:等可执行代码
5.在onload、onerror、onclick等事件中,注入不受控制的代码。
6.在style属性和标签中,包含类似 background-image:url(“javascript:…”); 的代码(新版本浏览器已经可以防范)。
7.在 style 属性和标签中,包含类似 expression(…) 的 CSS 表达式代码(新版本浏览器已经可以防范)。

3.如何避免XSS攻击

1.HTML转义
2.对于链接跳转,a标签中href属性或location.href,要校验其内容,禁止以JavaScript:开头的链接和其他非法的scheme
3.HTML转义十分复杂,在不同的情况下要采用不同的转义规则。如果采用了错误的转义规则,很有可能会埋下XSS隐患
4.尽可能采取业内成熟的通用的转义库,这样会避免自己写转义库有很多考虑不周的问题

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值