今天下午上了一堂前端安全的课,挺有意思,记录下来。在上课之前,我对安全的概念是:
用户输入是不可信的,所有用户的输入都必须转义之后才入库。
然后,上面这个这种方式,仅仅是防止SQL注入攻击,避免业务数据库被渗入。
在数据库有了一层安全保护之后,攻击者们的目标,从服务器转移到了用户身上。由此,出现了CSRF攻击和XSS攻击。
CSRF
CSRF (Cross-Site-Request-Forgery) 全称是跨站请求伪造。是攻击者伪造用户身份,向服务器发起请求已达到某种目的的攻击。
GET类型的CSRF
假如有一个业务系统API,其有一个点赞的api是http://domain.com/api/like?pid=111 ,如果想要刷pid为111的点赞,只需要构建一个简单的HTTP请求即可。
<img src='http://domain.com/api/like?pid=111'>
因为Img标签会自动请求src的网络,估当用户浏览一个含有上述img标签的网址的时候,不经意间已经发出一个为pid=111内容进行点赞的操作。
其实这种写操作,最好改成POST的形式,起码增加了攻击者的门槛。
POST类型的CSRF
此类型的特点是,业务系统的api,对于写操作,是用POST的方式,而不是GET的方式。
和GET对比起来,攻击门槛高了一些,不能仅仅依靠img标签来构造HTTP请求,得靠表单来实现HTTP POST了。
<form action="http://domain.com/api/like">
<input type="text" name="xxx" value="1">
</form>
<script>
document.forms[0].submit();
</script>
先准备一个攻击页面,如上面的代码,然后将URL隐藏在预先准备的内容中,分发出去,诱使用户点击攻击页面。
CSRF防御方式
GET类型的CSRF,就应该从代码层面规避,让写操作必须走HTTP POST的方式,这样也更符合HTTP Method的语义。
POST类型的CSRF,由于是跨站攻击,一个简单的防御方式是对HTTP Refer进行判断,如果是非业务[域名发起的HTTP请求,则直接过滤处理。
但HTTP Refer并不是百分百可靠,在某些时候,服务器是收不到HTTP Refer值的(例如某些代理环境,例如低版本浏览器)。
所以,HTTP Refer可以用来做CSRF攻击的检测,但防御还需要另外真正的宙斯盾。
根据上面可以知道,所有CSRF攻击,最重要的是伪造攻击URL,如果我们的API,带有一个随机参数,让攻击者没法固定伪造,则可以完美防御CSRF攻击。
防御CSRF,可以在我们请求的参数里面,携带一次性随机Token信息即可。
如果你对网络安全入门感兴趣,那么你点击这里👉CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享
如果你对网络安全感兴趣,学习资源免费分享,保证100%免费!!!(嘿客入门教程)
👉网安(嘿客)全套学习视频👈
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。
👉网安(嘿客红蓝对抗)所有方向的学习路线****👈
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
学习资料工具包
压箱底的好资料,全面地介绍网络安全的基础理论,包括逆向、八层网络防御、汇编语言、白帽子web安全、密码学、网络安全协议等,将基础理论和主流工具的应用实践紧密结合,有利于读者理解各种主流工具背后的实现机制。
面试题资料
独家渠道收集京东、360、天融信等公司测试题!进大厂指日可待!
👉嘿客必备开发工具👈
工欲善其事必先利其器。学习嘿客常用的开发软件都在这里了,给大家节省了很多时间。文章来源:https://www.toymoban.com/news/detail-781739.html
这份完整版的网络安全(嘿客)全套学习资料已经上传至CSDN官方,朋友们如果需要点击下方链接也可扫描下方微信二v码获取网络工程师全套资料【保证100%免费】
文章来源地址https://www.toymoban.com/news/detail-781739.html
如果你对网络安全入门感兴趣,那么你点击这里👉CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享
到了这里,关于Web前端安全学习-CSRF的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!