现在假设一个场景:
你做了一个私人文件管理网站,用户可以上传文件,并且可以在线管理文件
其中你提供了几个接口以供前段web(js)调用,接口实例如下:
删除接口 http://yourhost/delete?dir=["/dir"],删除文件/dri
新建接口 http://yourhost/create?dir=["/dir", "/dir/a"],创建文件/dir,/dir/a
假定你的接口没有对请求的有效性做检查(很多网站都没有进行这一步,包括一些知名网站)
如果你的网站是上面的情况的话,那么恭喜你!!
你的网站用户会被别人攻击~~
攻击者可以攻击你的用户,包括操作用户的文件等~
例如攻击者可以伪造下面的连接:
http://yourhost/delete?dir=["/MyDocument", “/public”]
然后把这个连接发送给你,诱骗你点击
如果你点击了的话,那么你的文件/MyDocumnet和/public文件就会被删除
也许你认为这个出现的概率很低,那么你就错了。
如果我把这个连接发布到贴吧的话,那么可能受到攻击的文件管理网站用户可能就很多了。
下面给大家讲解一下攻击的原理(示例说明):
1. 假定用户A登录了文件管理网站,浏览器会保存用户A的cookie
2. 用户点击了http://yourhost/delete?dir=["/MyDocument", “/public”]
3. 当浏览器访问2中的连接时,会携带本机(文件管理网站用户的)cookie
4. 用户A的文件被删除了
希望对大家有点帮助,以减少网站csrf漏洞