【网络】常见网络攻击方式
2023/01/18 12:16:34
CSRF(Cross Site Request Forgery,跨站域请求伪造)
攻击者利用技术手段欺骗浏览器去访问一个已经认证过的网站,由于网站已经对当前客户端进行过认证,因此网站会将攻击者的请求误认为是用户的请求。
这利用了 web 中用户身份验证的一个漏洞:简单的身份认证只能保证请求发自某个用户的浏览器,却不能保证请求本身是用户自愿发出的。
攻击者并不能通过 CSRF 攻击直接获取用户的账户使用权,也不能直接窃取用户的任何信息。他们能做的是欺骗用户浏览器,让其以用户的名义运行自己想要执行的操作。
攻击细节
例子:
假如一家银行用以运行转账操作的 URL 地址如下:http://www.examplebank.com/withdraw?account=AccoutName&amount=1000&for=PayeeName
那么,一个恶意攻击者可以在另一个网站上放置如下代码: <img src="http://www.examplebank.com/withdraw?account=Alice&amount=1000&for=Badman">
如果有账户名为 Alice 的用户访问了恶意站点,而她之前刚访问过银行不久,登录信息尚未过期,那么她就会损失 1000 资金。
防御措施
不完全依赖 cookie
CSRF 攻击的核心在于利用 cookie 来伪装成用户,那么服务端增加一些 cookie 之外的数据来校验用户就可以预防 CSRF 攻击了。
利用 cookie 的 SameSite 属性
SameSite 属性可以指定 cookie 的跨站传输策略,设置为 Strict 时只有当前网站 url 与请求目标完全一致才会带 cookie。