xss|XSS攻击
什么是XSS?
Cross-Site Scripting(跨站脚本攻击)简称 XSS,是一种代码注入攻击。攻击者通过在目标网站上注入恶意脚本,使之在用户的浏览器上运行。利用这些恶意脚本,攻击者可获取用户的敏感信息如 Cookie、SessionID 等,进而危害数据安全。
产生原因
通常页面中包含的用户输入内容都在固定的容器或者属性内,以文本的形式展示。
攻击者利用这些页面的用户输入片段,拼接特殊格式的字符串,突破原有位置的限制,形成了代码片段。
攻击者通过在目标网站上注入脚本,使之在用户的浏览器上运行,从而引发潜在风险。
如何解决
解决方法:通过 HTML 转义,可以防止 XSS 攻击。
用escapeHTML将< > & " '转成字符实体 , unescapeHTML将字符实体转成< > & " '
使用场景:
(1)用户在页面中录入(比如输入框) , js将该内容提交给后端保存
(2)显示时,后端将字符串返回前端;js接收到之后:
- 使用escapeHTML,将字符串转为 此时,浏览器将能正确解析,因为浏览器接收到实体字符后,转成对应的尖括号等。
- 不使用escapeHTML,浏览器一看到<,便认为是html标签的开始,直接把刚才的字符串当脚本执行了,这就是xss漏洞。
对于链接跳转,如 XSS 有哪些注入的方法:
- 在 HTML 中内嵌的文本中,恶意内容以 script 标签形成注入。
- 在内联的 JavaScript 中,拼接的数据突破了原本的限制(字符串,变量,方法名等)。
- 在标签属性中,恶意内容包含引号,从而突破属性值的限制,注入其他属性或者标签。
- 在标签的 href、src 等属性中,包含 javascript: 等可执行代码。
- 在 onload、onerror、onclick 等事件中,注入不受控制代码。
- 在 style 属性和标签中,包含类似 background-image:url(“javascript:…”); 的代码(新版本浏览器已经可以防范)。
- 在 style 属性和标签中,包含类似 expression(…) 的 CSS 表达式代码(新版本浏览器已经可以防范)。
推荐阅读
- 简易有效Api接口防攻击策略
- C语言小游戏教程P4
- 降维攻击
- 【鼎典美育】如何面对孩子的“攻击性行为”()
- 一颗麦子对另一颗麦子发起了血腥的攻击……引发了一个话题(爱是什么())
- 饱和攻击
- 伊朗Cisco路由器遭黑客攻击|伊朗Cisco路由器遭黑客攻击 全国互联网几乎瘫痪
- 一种几乎无法被检测到的Punycode钓鱼攻击,Chrome、Firefox和Opera等浏览器都中招
- 面试|面试问题如何预防csrf攻击
- Capture the flag