胖蒜

分享有价值的资源

关于TeePay开源版本插件存在安全问题的修复教程

TePay有个开源的版本,在GitHub上,需要的功能基本都有,经济紧张的用这个版本就可以,但是最近有人反应存在一些安全问题,因为开源版本不再更新,故在这里说一下修复操作。

首先说一下不再修复的原因,其实我还是很想去修复的,但是有人利用插件的一些问题恶意攻击别人,导致几个一天只有个位数IP访问量的小站,未付款订单几万单,就觉得很不好,所以就再说一下开源版本存在的问题。

除了在GitHub的issue上提的,还有几个问题,也统一回复一下。

一、权限的验证和XSS漏洞的问题

在这里已经指出来了,但是没有修复教程,https://www.shinenet.cn/archives/117.html
要修复这个非常的简单,只需在 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,也欢迎发到自己博客,各论坛去交流。

本文属原创,转载请注明原文:https://pangsuan.com/p/teepay-bugs.html

感觉很棒,欢迎点赞 OR 打赏~

分享到:

评论 (12)

立即登录评论

    哪有基础班安装视频教程?

    试用基础班

      之前基础版是收费的,但是不协助安装,所以配了一个安装视频教程。
      现在基础版开源免费了,视频教程就撤下了,不再提供了。
      这个插件很简单,应该不需要教程吧,如果你真的觉得困难,在本站找找,有简单的图文教程。

    哦哦,谢谢啦,安装比较简单。目前已经安装,支付宝也已经申请,支付页面可以跳出来付款二维码,但是跳转支付宝app以后,提示“系统有点忙,一会再试试”,一直这样,这是什么问题。如果我买个专业版的,可能帮我调试好了吗?还是我的支付宝有问题,买了专业版也没用?

    试用基础班

    谢谢啦,问题找到了,我用我自己支付宝扫描的事,真晕,应该用别人的支付包去付款测试。谢谢啦,先体验体验,等来买你的专业版。

    试用基础班

      是的,该有的功能基础版基本都包括了,专业版会多一些功能,具体可以去专业版介绍页面查看。如果暂时没有固定的业务,先用基础版吧,也挺好的。

    胖老大你好~我测试了一下免费版~为什么后台文章付费那里有如下错误提示~
    https://s1.ax1x.com/2020/06/07/t2JoqK.png
    大佬能告知吗~谢谢~

    胖胖的我喜欢

      你用的虚拟主机对吧?
      已经有错误提示,按照提示修改吧……

    胖佬 handsone主题测试使用后 pjax不能用了
    请问基础版pjax回调函数是什么

    okfree

      没用过pjax,所以不知道,专业版不依赖jquery,很多用handsome主题的,没反应有问题。

        感谢大佬的回复 我是一个非盈利小博客博主 用的也是handsome主题(朋友送的主题) 哈
        测试免费版可用 就是用后pjax失效了:大哭:

        okfree

    未登录,付款显示成功,文章依然不能阅读。如果登录用户,付款成功后,可以阅读!
    求教,什么原因?

    卡卡卡

      cookie的原因,可能浏览器关闭了,未登录付款就是通过cookie记录付款状态的。

马上咨询 在线工单