电商安全行现在,我们绝大多数人都会在网上购物买东西。
但是很多人都不清楚的是,很多电商网站会存在安全漏洞。
乌云就通报过,国内很多家公司的网站都存在CSRF漏洞。
如果某个网站存在这种安全漏洞的话,那么我们在购物的过程中,就很可能会被网络黑客盗刷信用卡。
是不是有点「不寒而栗」的感觉?
首先,我们需要弄清楚CSRF是什么。
它的全称是Cross-siterequestforgery,翻译成中文的意思就是「跨站请求伪造」,这是一种对网站的恶意利用。
简单而言,就是某恶意网站在我们不知情的情况下,以我们的身份在你登录的某网站上胡作非为——发消息、买东西,甚至转账......这种攻击模式听起来有点像跨站脚本(XSS),但CSRF与XSS非常不同,并且攻击方式几乎相左。
XSS利用站点内的信任用户,而CSRF则通过伪装来自受信任用户的请求来利用受信任的网站。
与XSS攻击相比,CSRF攻击往往很少见,因此对其进行防范的资源也相当稀少。
不过,这种「受信任」的攻击模式更加难以防范,所以被认为比XSS更具危险性。
这个过程到底是怎样的呢?
让我们看个简单而鲜活的案例。
银行网站A,它以GET请求来完成银行转账的操作,危险网站B,它里面有一段HTML的代码如下:可能会发生什么?
你登录了银行网站A,然后访问危险网站B以后,突然发现你的银行账户少了10000块......为什么会这样呢?
原因是在访问危险网站B之前,你已经登录了银行网站A,而B中的以GET的方式请求第三方资源(这里的第三方就是指银行网站了,原本这是一个合法的请求,但这里被不法分子利用了),所以你的浏览器会带上你的银行网站A的Cookie发出GET请求,去获取资源结果银行网站服务器收到请求后,认为这是一个合理的转账操作,就立刻转账了......其实,真实的银行网站不会如此不加防范,但即使用POST替代GET,也只是让危险网站多花些力气而已。
危险网站B依然可以通过嵌入Javascript来尝试盗取客户资金,所以我们时不时会听到客户资金被盗的案件,其实这并不是很不稀奇。
相信,很多人了解到这儿,会出现一身冷汗,还让不让我们在「双11」期间能够愉快地享受网购的快感了?
难道没有什么办法防住它嘛?
当然是有的。
可以给网站打补丁,如CookieHashing(所有表单都包含同一个伪随机值)。
这可能是最简单的解决方案了,因为理论上攻击者不能获得第三方的Cookie,所以表单中的数据也就构造失败了。
但这并不是完美的解决方案,因为用户的Cookie很容易由于网站的XSS漏洞而被盗取;另一种方法是用验证码,每次的用户提交都需要用户在表单中填写一个图片上的随机字符串....这个方案可以完全解决CSRF,但用户体验很遭罪(忒麻烦了)。
还有一种是One-TimeTokens(不同的表单包含不同的伪随机值),需要设计令牌和Session管理逻辑,并修改Web表单,网站运维又很遭罪。
更多分享请关注订阅号:ECsafe 2016年
淘宝要干哪些大事