ThinkPHP

聚合支付平台的安全防护 防止被攻击篡改的2020年方案篇

亡梦爱人 提交于 2020-02-28 07:28:30
临近春节,某聚合支付平台被攻击篡改,导致客户提现银行卡信息被修改,支付订单被恶意回调,回调API接口的数据也被篡改,用户管理后台被任意登入,商户以及码商的订单被自动确认导致金额损失超过几十万,平台被攻击的彻底没办法了,通过朋友介绍,找到我们SINE安全公司寻求网站安全防护支持,针对客户支付通道并聚合支付网站目前发生被网站攻击,被篡改的问题,我们立即成立了网站安全应急响应小组,分析问题,找到漏洞根源,防止攻击篡改,将客户的损失降到最低。 我们将这次安全处理的解决过程分享出来,也是希望整个支付平台更加的安全。首先对接到客户这面,我们Sinesafe安排了几位从业十年的安全工程师来负责解决此次聚合支付平台被攻击,篡改的安全问题,了解客户支付网站目前发生的症状以及支付存在哪些漏洞,客户说支付平台运营一个月时出现过这些问题,然后在运营的第二个月陆续出现几次被攻击篡改的情况,客户自己的技术根据网站日志分析进攻路线排查加以封堵后,后续两个月支付均未被攻击,就在最近快过年的这几天,支付订单被篡改,很多未支付的订单竟然被篡改为成功支付,并从通道返回成功数据,导致平台损失较大,随即对支付通道进行了暂停,并联系码商停止支付接口。客户还反映支付链接被劫持,跳转到别人那去了,导致很多支付的订单都被支付到攻击者的账户中去了,损失简直不可言语。 很多商户以及集团使用聚合支付平台

think-queue介绍

倾然丶 夕夏残阳落幕 提交于 2020-02-27 21:01:07
参考资料 官方文档 https://github.com/coolseven/notes/tree/master/thinkphp-queue think-queue 是ThinkPHP官方提供的一个消息队列服务,是专门支持队列服务的扩展包。 think-queue 消息队列适用于大并发或返回结果时间比较长且需要批量操作的第三方接口,可用于短信发送、邮件发送、APP推送。 think-queue 消息队列可进行发布、获取、执行、删除、重发、失败处理、延迟执行、超时控制等操作。 think-queue 支持消息队列的基本特性 消息的发布、获取、执行、删除、重发、失败处理、延迟执行、超时控制等 队列的多队列、内存限制、启动、停止、守护等 消息队列可降级位同步执行 安装 首先查看ThinkPHP框架版本,然后进入Packagist官网搜索 think-queue ,并根据ThinkPHP版本选择对应 think-queue 版本。 thinkphp-queue 地址: https://packagist.org/packages/topthink/think-queue 本文采用的ThinkPHP的版本为 5.0.23 ,查询选择 think-queue 的版本为 1.1.6 。 可直接使用Composer为当前项目安装 think-queue 消息队列插件 $ composer

thinkphp的程序本地测试正常放到网站上后打开一片空白

狂风中的少年 提交于 2020-02-27 20:39:50
可能原因: 1,打开你的 index.php 修改为 debug 模式。 2. 如果不想修改为debug模式,请清除 runtime 文件夹并设置可写权限。 3. 有可能是你的布局文件或者基模版引用出错了。在 windows下 文件名不区分大小写,在 lunix下是区分大小写的。 来源: oschina 链接: https://my.oschina.net/jack088/blog/3164202

利用Guzzle采集数据

戏子无情 提交于 2020-02-27 07:23:48
在这里我想说一下,本章旨在学习,无任何越权操作!都是在thinkphp5的环境下,本地环境localhost 通过composer安装完成Guzzle之后,引入 use GuzzleHttp\Client ; $client = new Client(); $url = 'http://www.xxxxxxx.cn/api/getData?params=www.xxxxx.cn' ; //在这一步,headers里面的参数,类似于伪造访问ip(不知道这样说对不对),相关配置详见Guzzle文档 https://guzzle-cn.readthedocs.io/zh_CN/latest/request-options.html#headers $response = $client ->request( 'GET' , $url , [ 'headers' => [ 'x-forwarded-for' => 'xxx.xxx.xxx.xxx' ] ])->getBody()->getContents(); $data = json_decode ( $response , true ); dump( $data ); exit ; $this ->assign( 'content' , $data ); return $this -> view ->fetch( 'other' );

适用于yii1.1的thinkphp化的db操作类

拈花ヽ惹草 提交于 2020-02-27 01:56:57
前段时间的一个项目是要对一个用yii1.1写的商城做修改,不怎么好写,不过比面向过程的ecshop好得多,之前刚开始改ecshop还真是头大 yii1.1其中数据库操作花了我不少时间去找各种例子进行测试,出于日后可能还要改的原因,我将数据库的一些操作改成了thinkphp的形式,代码如下 <?php /**gcud数据库操作 * @version 20191231 */ class gcudDb { private $TableName; private $Conditions; private $ConditionsParameters; private $FieldsString; private function getDbCommand() { return \Yii::app()->db->createCommand(); } private function BuildCondition() { $this->ConditionsParameters = []; $this->ConditionsParameters['fieldString'] = ''; $this->ConditionsParameters['parameters'] = []; if ($this->Conditions) foreach ($this->Conditions as $Key =

网站被黑客攻击 如何利用渗透测试查找漏洞来防止攻击?

夙愿已清 提交于 2020-02-26 16:33:01
APP渗透测试目前包含了Android端+IOS端的漏洞检测与安全测试,前段时间某金融客户的APP被黑客恶意攻击,导致APP里的用户数据包括平台里的账号,密码,手机号,姓名都被信息泄露,通过老客户的介绍找到我们SINE安全公司寻求安全防护上的技术支持,防止后期APP被攻击以及数据篡改泄露等安全问题的发生。针对于客户发生的网站被黑客攻击以及用户资料泄露的情况,我们立即成立了SINE安全移动端APP应急响应小组,关于APP渗透测试的内容以及如何解决的问题我们做了汇总,通过这篇文章来分享给大家。 首先要了解客户的情况,知彼知己百战不殆,客户APP架构开发是Web(php语言)+VUE框架,服务器采用的是Linux centos系统,数据库与WEB APP端分离,通过内网进行传输,大部分金融以及虚拟币客户都是采用此架构,有的是RDS数据库,也基本都是内网传输,杜绝与前端的连接,防止数据被盗,但是如果前端服务器(APP)存在漏洞导致被黑客攻击,那么攻击者很有可能利用该服务器的权限去远程连接数据库端,导致数据泄露,用户信息被盗取的可能。 然后对客户服务器里的APP代码,以及网站PHP源文件进行代码的安全审计,以及网站木马文件的检测与清除,包括网站漏洞测试与挖掘,我们SINE安全都是人工进行代码的安全审计与木马检查,下载了客户代码到本地电脑里进行操作,包括了APP的网站访问日志

长连接服务器

让人想犯罪 __ 提交于 2020-02-26 14:39:23
这个错误是长连接服务器没有开启,先关掉apache 服务器/usr/local/apache_home/bin/apachectl stop,开启长连接服务 php /usr/local/apache_home/htdocs/ThinkPHP/Library/Vendor/GatewayWorker/start.php start -d,然后在启动apache服务器就可以了 来源: oschina 链接: https://my.oschina.net/happyfish319/blog/3157814

thinkphp网站最新版本6.X漏洞修复解决办法

99封情书 提交于 2020-02-26 02:11:33
大年初五,根据我们SINE安全的网站安全监测平台发现,thinkphp官方6.0版本被爆出高危的网站代码漏洞,该漏洞可导致网站被植入网站木马后门文件也叫webshell,具体产生的原因是session ID参数值这里并未对其做详细的安全过滤与效验,导致可以远程修改POST数据包将session的值改为恶意的后门代码,发送到服务器后端并生成PHP文件直接生成,可导致网站被攻击,服务器被入侵,关于该thinkphp漏洞的详情,我们SINE安全来跟大家分析一下。 thinkphp是国内用的比较多的一套开源系统,采用的是php+mysql架构开发,基于该框架的开发较容易与维护,深受很多站长以及企业的青睐,2018-2019年thinkphp的漏洞就层出不穷,像之前的3.23版本,ThinkPHP 5.0缓存漏洞、ThinkPHP 5.0.10、ThinkPHP5.0.12、ThinkPHP5.0.13、ThinkPHP5.0.23、thinkphp 5.0.22版本都存在这漏洞。 目前的新版本6.0存在着session任意文件上传漏洞,我们SINE安全工程师来进行详细的安全分析与代码的安全检测,再index控制器里我们发现可以写入session来进行控制代码,首先我们看下代码:如下图所示 以上代码是用来获取name的参数值并将值里的内容写到session中去,我们来本地搭建一套TP6

聚合支付网站被黑客攻击 导致数据库被篡改的防御办法

我们两清 提交于 2020-02-25 21:04:24
2020春节即将来临,收到新聚合支付平台网站客户的求助电话给我们Sinesafe,反映支付订单状态被修改由原先未支付修改为已支付,导致商户那边直接发货给此订单会员了,商户和平台的损失较大,很多码商都不敢用此支付平台了,为了防止聚合支付系统继续被攻击,我们SINE安全大体情况了解后,立即安排从业十年的安全工程师,成立聚合、通道支付平台安全应急响应小组。 分析并了解支付过程 我们Sinesafe对整个第三方支付平台网站的流程进行了分析如下,平台首先要对接到上游支付通道,然后由上游支付通道返回支付状态回调到平台,然后由平台的状态返回给商户(也就是码商),首先码商注册好平台的商家用户,然后从商家用户后台获取接口对接程序与码商自己的网站进行对接调试,如果商家会员对订单进行了支付,如果支付成功会回从平台获取支付状态,而平台去从上游通道获取状态来回调到自身平台,目前大部分的接口都是一些PDD通道以及个人二维码对接的企业通道,俗称为聚合支付。 支付漏洞安全原因症状 1.发现在码商下的会员订单并未成功支付导致在平台这里的支付状态被黑客修改为已支付,从而回调数据给商户说明已经支付了,导致订单是成功的状态,商家不得不发货给会员(也就是上分给会员)从而恶意提现导致商家损失严重。 2.发现商户申请提现这里的收款人信息被篡改,导致商户的资金被冒领。很多码商对这一点是非常重视的,几乎都是日结算

onethink不能安装到已经存在的数据库中的问题

浪子不回头ぞ 提交于 2020-01-08 21:46:54
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> onethink官方版本 onethink_1.0_140202.zip 放到环境中,进行安装,到第二步时,怎么也通不过 因为我是安装到一个已经存在的库中,才有此问题 而该版本的InstallController的第81行的对已存在库的判断有误 /* $sql = "CREATE DATABASE IF NOT EXISTS `{$dbname}` DEFAULT CHARACTER SET utf8"; $db->execute($sql) || $this->error($db->getError()); //上面这句执行 如果库已经存在 会返回 0 ,将判断改为一下 */ $sql = "CREATE DATABASE IF NOT EXISTS `{$dbname}` DEFAULT CHARACTER SET utf8"; if (false === $db->execute($sql)) { $this->error($db->getError()); } 来源: oschina 链接: https://my.oschina.net/u/26712/blog/227061