标签:XSS DOM 攻击 alert token CSRF 移除 节点
CSRF
(Cross-site request forgery
):跨站请求伪造。
方法一、Token 验证:(用的最多)
-
服务器发送给客户端一个
token
; -
客户端提交的表单中带着这个
token
。 -
如果这个
token
不合法,那么服务器拒绝这个请求。
方法二:隐藏令牌:
把 token
隐藏在 http
的 head
头中。
方法二和方法一有点像,本质上没有太大区别,只是使用方式上有区别。
方法三、Referer 验证:
Referer
指的是页面请求来源。意思是,只接受本站的请求,服务器才做响应;如果不是,就拦截
XSS(Cross Site Scripting)``:跨域脚本攻击。
1. 编码:
对用户输入的数据进行HTML Entity
编码。
如上图所示,把字符转换成 转义字符。
Encode的作用是将
$var`等一些字符进行转化,使得浏览器在最终输出结果上是一样的。
比如说这段代码:
<script>alert(1)</script>
若不进行任何处理,则浏览器会执行alert的js操作,实现XSS注入。进行编码处理之后,L在浏览器中的显示结果就是
<script>alert(1)</script>
,实现了将`$var
作为纯文本进行输出,且不引起JavaScript
的执行。
2、过滤:
-
移除用户输入的和事件相关的属性。如
onerror
可以自动触发攻击,还有onclick
等。(总而言是,过滤掉一些不安全的内容) -
移除用户输入的
Style
节点、Script
节点、Iframe
节点。(尤其是Script
节点,它可是支持跨域的呀,一定要移除)。
3、校正
-
避免直接对
HTML Entity
进行解码。 -
使用
DOM Parse
转换,校正不配对的DOM
标签。
备注:我们应该去了解一下DOM Parse
这个概念,它的作用是把文本解析成DOM
结构。
比较常用的做法是,通过第一步的编码转成文本,然后第三步转成DOM
对象,然后经过第二步的过滤。
标签:XSS,DOM,攻击,alert,token,CSRF,移除,节点 来源: https://blog.csdn.net/Erictezx/article/details/122133844
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。