TePay有个开源的版本,在GitHub上,需要的功能基本都有,经济紧张的用这个版本就可以,但是最近有人反应存在一些安全问题,因为开源版本不再更新,故在这里说一下修复操作。
首先说一下不再修复的原因,其实我还是很想去修复的,但是有人利用插件的一些问题恶意攻击别人,导致几个一天只有个位数IP访问量的小站,未付款订单几万单,就觉得很不好,所以就再说一下开源版本存在的问题。
除了在GitHub的issue上提的,还有几个问题,也统一回复一下。
一、权限的验证和XSS漏洞的问题
在这里已经指出来了,但是没有修复教程-
TeePay插件的越权和XSS漏洞/TeePay Plugin Escalation of Privileges and XSS Vulnerability要修复这个非常的简单,只需在 action 方法内的开头位置插入下列代码即可。
$user = Typecho_Widget::widget('Widget_User');
$user->pass('administrator');
XSS漏洞的问题加过滤就可以了。
二、未登录用户提交订单的问题
为了方便付费阅读的操作,设置了未登录也可以提交订单,那么就用人可以用这个来恶意攻击,就是文章开头所说到的。
在这里,我是用ajax的post提交到pay.php文件的,提交一次就插入一条订单,就可以利用这个写个js脚本一直提交,一天几万个未付款订单太简单。那么该怎么修复呢?
1、未登录就提交,肯定存在风险的,但是方便啊,在这里我们可以在pay.php里面加频率限制,比如限制IP访问次数,或者用session限制提交次数。
2、对cookie进行限制,cookie的生成有一定的规则。
3、主机上也做一下防CC攻击等限制。
三、提交数据未验证
还有一个更重要的问题,就是提交都数据未验证就直接写入了数据库,那么做一个验签的功能是非常有必要的,每次提交的数据必须验证一致后才能进行接下来的操作。
还有什么问题,欢迎大家提issue,也欢迎发到自己博客,各论坛去交流。
本文链接:http://78moban.cn/post/17150.html
版权声明:站内所有文章皆来自网络转载,只供模板演示使用,并无任何其它意义!