爬虫(黑客)能不能模拟支付转账接口从而盈利?如果能,为什么没有人利用这个发大财?
其实我很久之前就思考过这个问题,一直没想明白,最近在做后端的支付相关的功能,所以又思考了一下这个问题,不保证对,如果不对希望有人能指出问题所在,感谢。
首先一些反爬措施只是能加大模拟请求的难度,并不能理论上完全禁止掉爬虫或者黑客这种模拟接口的行为。
还有一些非对称加密、加签验签等方式,也只能防范服务端向服务端发送请求的安全性,不能防范手机端/app端向服务端发送请求的安全性,因为手机端/app端的任何代码理论上都是暴露给用户的,所以非对称加密所需密钥和签名方法,爬虫也可以获取到的,同样可以模拟。只有服务端向服务端通信的时候,才能够保证私钥不泄露,从而保证请求的安全性。但其实这种方式对于https传输意义并不大,因为数据本身就是加密的,是无法被篡改的,只是多加了一层安全保护而已。
所以模拟是可以的。当然此过程是极其困难的,比如破解支付宝app等,困难的步骤姑且省略。
对于支付接口的模拟,最简单的情况也会设计到4部分,分别是付款人密码,付款人,收款人,金额。注意此时的付款人和付款人密码是要对应的,是同一个人的,也就是或爬虫如果想要修改数据,必须要把这两个对应上,如果想篡改成任意付款人是不行的,因为不会有他的密码,所以付款人是固定的,只能修改收款人和金额。当然这个付款人密码有可能是一个hash,但是实质上对整个流程没有什么影响。
然后爬虫的请求就可以发送成功了。比如当我获取到某个支付请求的时候,把收款人改成我自己,金额改成一亿元,然后发送,我就真的可以得到一亿元的人民币了。当然前提是接口里的付款人账户里有一亿元。
然而,如果这种情况发生了,真实的付款人肯定会发现不对劲,这种大事(一亿元)肯定要报警,此时警察肯定会去查这笔交易的收款人付款人,尤其是收款人的银行卡号,对应的手机号,身份证号等等等等,然后就锁定了我,把我抓起来了,所以我不能这么做了。
那问题又来了,如果我在国外操作呢,警察是不是就抓不到我了,我可以为所欲为吗?也是不可以的,因为我用的支付宝账号,银行卡之类的肯定是国内的,应该会把我的账户冻结,钱扣除。那问题又来了,如果我第一时间把钱转到境外银行卡呢,应该也不行,因为这种境外转账是不那么容易的,需要审核的,不太清楚了。
所以标题的答案是:能实现,但是会被抓。
流程图:

然后做过支付接口的人应该能了解到,支付接口为了提高安全性是相当复杂的,那为什么还要弄这些复杂的操作呢,反正理论上爬虫或黑客也可以破解,而且破解的话也会有警察抓他,有什么意义呢?其实只是降低风险,加大了违法难度,节省公安人员人力物力。
浙公网安备 33010602011771号