在此环境下我决定自己开发一个能防御部分csrf攻击的小插件,当然要真正杜绝CSRF的话还是的修改后台的内核代码。在我们用户不能修改或不会修改内核代码的情况下,使用本插件还是能起到一定的防御作用。
界面借用了智者牛的站点安全保护插件:http://zhizhe8.net/?post=85730。
哈哈,不要吐槽我:
插件原理比较简单,敏感页面(GET方式传值的)与含有POST数据的页面,判断referer。如果referer中的host和blog的host相同,则放行。
插件有几个小tip:
1.有的同学说referer可以伪造,确实可以伪造,但在CSRF中我们是没法伪造的(除非有浏览器漏洞?)
2.emlog后台插件也可以通过CSRF漏洞来禁用,所以本插件考虑到这个情况对GET中的敏感操作进行了特殊防御
3.插件只防御了一些敏感操作和POST传值的操作,不能保证万无一失,还是希望开发组重视该问题,在内核代码中使用token才是比较保险的方法
4.如果你的网站还存在分站或子目录放有其他网站,攻击者可以在子目录下上传html来进行CSRF攻击,该种方式无法使用referer防御
插件下载在附件中。