点击蓝字
关注我们
始于理论,源于实践,终于实战
老付话安全,每天一点点
激情永无限,进步看得见
-
跨站脚本XSS允许攻击者在受害者用户的浏览器中执行任意 JavaScript。
-
跨站请求伪造 CSRF允许攻击者诱使受害者用户执行他们不打算执行的操作。
-
CSRF攻击通常是针对特定的应用程序功能,攻击者诱使用户在不知情的情况下执行某些操作,这些操作通常是用户能够执行的子集。例如,攻击者可能会诱使用户在已登录的情况下更改密码、转账资金或发布帖子等。
-
XSS 漏洞利用通常可以诱使用户执行用户能够执行的任何操作,而不管漏洞出现的功能如何。XSS攻击可以直接控制用户的浏览器,因此它可以诱使用户执行任何用户能够执行的操作,而不仅仅局限于特定的应用程序功能。
-
CSRF攻击被称为“单向”漏洞,因为攻击者只能诱使受害者发出HTTP请求,但无法直接从该请求中检索响应。攻击者的目标通常是诱使受害者执行某些操作,例如更改密码、转账资金或发布帖子等。由于CSRF攻击只能发出请求,而无法直接获取响应,因此它需要结合其他攻击手段,例如社会工程学或钓鱼攻击,才能实现完整的攻击链。
-
XSS攻击被称为“双向”漏洞,因为攻击者注入的脚本不仅可以发出任意请求,还可以读取响应并将数据泄露到攻击者选择的外部域。攻击者的目标通常是窃取用户的敏感信息、模拟用户操作或甚至控制用户的浏览器。
CSRF 如何防御呢?
-
Token验证:在每个关键请求中附加一个唯一的Token,并在服务器端验证这个Token,可以确保请求是由用户主动发起的,而不是由恶意网站自动触发的。Token通常在用户会话开始时生成,并存储在用户的会话中。在每次请求时,服务器会将请求中的Token与会话中的Token进行比对,如果匹配则认为请求是合法的,否则拒绝请求。
-
SameSite属性:通过在Set-Cookie响应头中设置SameSite属性,可以限制浏览器只在相同站点之间发送Cookie。这样可以防止恶意网站通过CSRF攻击获取用户的敏感信息。SameSite 是一种浏览器安全机制,用于确定何时将网站的 Cookie 包含在来自其他网站的请求中。
-
Referer检查:通过检查HTTP请求头中的Referer字段,可以判断请求是否来自合法的来源。然而,这种方法并非完全可靠,因为Referer字段可能被攻击者伪造,或者在某些情况下(如HTTPS请求)可能为空。
-
自定义HTTP头:通过在HTTP请求头中添加自定义属性,并在服务器端验证这个属性,可以防止CSRF攻击。这种方法的优点是不会将Token暴露在URL中,因此更难被攻击者获取和伪造。
END
老付
欢迎扫码
关注我们
网络安全
原文始发于微信公众号(老付话安全):跨站脚本XSS 和 跨站请求伪造CSRF 有何区别
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论