通过图片src链接地址偷走白名单获取手机号



问题描述:
    因为WAP网站没有和移动的网关签约,从WAP的访问头文件中得不到用户的手号码,但一些业务必需需要用户的手机号。怎么获取用户的手机号呢,第一种方案是:做个表单让用户手动填写手号发送获取;第二种方案是通过走移动提供的白名单获取,问题是正常的流程用户访问WAP网后,发现没有手机号才跳到移动白名单WEB,获取到手机号,再跳回来,相当于让转一圈再回来,用户的体验很不好。这里我们选择第二种方案,是通过图片的地址链接偷偷的去走白名单。

基本思路:
    在网站的页面上放一个1px透明GIF图片,通过图上的地址是请求一个模块,这个模块在后端偷偷的完成走白名单的过程并记录下手机号到SESSION或内存里。用户访问第二个页面时从SESSION里或内存里获取手机号。

基本步骤:
    1、用户访问网站,判断有没有手机号的标识,如果有则不走白名单。
    2、没有手机号标识,显示图片,图片的(src)链接地址为白名单的处理模块。
    3、白名单处理模块:
    3.1、 判断请求是否有效(这里需要根据网站的本身情况考虑)
    3.2、 请求有效,转去请求白名服务
    3.3、 白名服务处理响应返回处理的结果,有可能没有手机号的情况。
    3.4、 处理保存手机号到SESSION、COOKIE或内存里(当然也可以写文件或其他的方式),这里有可能要考虑:如果没有COOKIE的情况下,数据的交换问题。
    4、 用户访问第二个页面,从交换数据中获取手机号,到这里手机号流程完成。有可能是没有获取手机号的,一定要有一个标识记录已经走过了白名单。不然就出现重复走白名单的过程,这个过程是很损耗资源的。

主要遇到的问题:
    主要问题就是数据的交换问题,获取到手机号后,怎么把后端处理的数据交换互前端的页面,走白名单是通过图片的(src)链接地址去走,就是在服务器的后端在进行。如果是在手机不支持cookie的情况下,保存到COOKIE这种方案是行不通,同时SESSION也是需要COOKIE来支持,如果没有COOKIE的情况下,可以把SESSION ID 转为 URL的方式。但这有一个问题是如果你前端用户访问的页面与你图片请求的页面产生的SESSION  ID不一样,用SESSION做为数据交换中心的方法,直接保存到SESSION是行不通的。如果用单一模式入口的框架可以用写内存的方法,把数据写到一个静态变量中,做为交换。也可以写到MEMCACHE中,KEY用$_GET保存。还有就是写到文件中,但写文件的方式比较损耗资源。

    我开始是用COOKIE方式处理的,在电脑上测试都没有问题在手机上就失败,就是因为手机不支持COOKIE,后来换用SESSION,还是有问题,后来发现在前端的SESSION ID 与 图片请求的SESSION ID 不一样,原因是在使用的框架影响(其实是自己写错一个名话,使传过来的GET标识走到一半失效,重新再生成SESSION, SESSION ID 就是根据GET 里的标识生成的。)自己最后的解决是用MEMCACHE处理。后来发现自己错误后,还是用SESSION处理了。
    
缺点:
    这种方式处理就是在用户一进来的时没有手机号,走白名单获取到手机号也无法改变用户无手机号的状态,只能在用户的第二个页面改变。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值