`
wsmajunfeng
  • 浏览: 491832 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

防钓鱼逻辑

 
阅读更多

我们的生活越来越离不开互联网了,越来越喜欢网购了。可是在网购的过程中,我们时不时的都会听说,某某人被钓鱼了,某某人的账号信息被到用了。作为程序员的我,回溯最近的几个年头,也有好些次差点被这些互联网上的链接给骗了。

故事1: 有一天,一QQ qun里的兄弟, 发了一链接(这个链接和QQ空间的链接好相似),然后说:“这个QQ空间里面有很多的xxxx”.一时兴起的同学立即点开,然后弹出的页面,和QQ空间的模子一个样,要想再进一步点击观看,需要登录。 然后,你输入用户名密码,发现什么也没有,或是真有什么。。。。不过请知道,你的QQ账号已经被窃取了。你被网站的假象给蒙骗了。

故事2: 接着故事1,假如这不是一个QQ空间,还可能是一个有交易的假冒网站(比如移动,联通的官网),故事继续发展,我们在这个网站上,进行手机充值,之前输入的是自己的手机号码,然后,选择了某某支付方式,比如第三方的支付公司,等我们支付完成了后,恍然才发现,我们给别人冲了值。 我的个去啊。

钓鱼场景还很多,大概都是这样的:假冒网站盗号然后获取信息; 假冒请求,直接获取财富或资料
面对故事1这种,大概只能自求多福,眼睛多观察,多留心了
面对故事2这种,我们有理由要求,支付公司为我们提供一定的安全保障,明明不是在他们的合作伙伴网站上支付,竟然支付成功了


这里研究了一下传统进行防钓鱼的措施有3种:白名单校验, 时间戳校验, IP检查
1. 白名单检查
商户调用支付公司系统,其http请求的Referer字段应该是支付公司合作伙伴的某个URL链接。支付公司会收集合作伙伴的网站域名做成一个集合叫做“白名单”
逻辑:
1、refer为空,交易直接失败。
2、refer不为空,refer域名不属于白名单列表时,失败交易

2. 时间戳检查
商户在发出http请求前先调用支付公司提供的一个接口来拿到支付公司服务器上的当前时间T1,把时间T1作为支付请求链接的一个参数加在url中传递给支付公司服务器,支付公司服务器接收到请求后先取出url中的时间参数T1,然后再取一下支付宝服务器当前的系统时间T2,计算两个时间的间隔,如果时间差超过一定范围,则时间戳检查失败,拒绝服务,可以跳转到error页面。时间间隔的设定默认是60秒,可以根据配置灵活的调整

3. IP检查
商户首先在商户平台内获取用户客户端的IP地址,然后将该IP地址作为支付接口的参数加到URL中。支付公司服务器在接受到支付请求后先取出URL中的IP值,然后再重新获取当前操作用户的客户端IP地址,比对两者是否一致,如果不一致,则IP检查失败,然后提醒风险(这里是提示风险,由用户决定是否下一步操作,因为IP可能获取不同,比如某公司有双网络出口)

面对故事2中的事情,很明显支付公司可以有个白名单拦截,这里就可以避免无辜的老百姓上当受骗。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics