月饼事件技术还原 - 用js+Chorme来做抢电商的东西吧

最近看阿里的月饼事件深有感慨啊,嗯,身为一名有职业操守和道德的资深技术人员,我们一定不要像文中说的这样子做。
我们要秉持诚信公开的原则,不能利用系统漏洞。。。好吧,开始进入正题。
我们先看下用什么手段才能先人一步的抢到东西。

整体思路

一般抢购或者竞拍网站。
抢购网站的流程:

  • 刷新一个页面看到是否开抢了,**因为现在网站的分布式部署,一个页面对一个域名的请求数目等等的限制, 一般这个页面将会是一个链接**:urlA。
  • 监控urlA的返回结果,当达到预期值的时候,调用下单的请求,或者是点击事件。

竞拍网站的要稍稍的麻烦一点点:

  • 刷新得到当前的最高报价
  • 然后设置一下期望的报价和加价幅度
  • 然后在期望值之内不停的加价,保证能够在最后抢到期望金额之下的商品

实战

咱们以京东夺宝岛为例,搞一个吧

  • 在Chorme中打开夺宝岛网页,按F12,然后刷新页面
  • 转到Network标签,看所有的请求,研究出那个请求是拿当前价格的
    方式是点击请求,看Response中的返回值:

    得到链接:http://dbditem.jd.com/json/current/englishquery?
    这个链接能够查看所有的出价记录的json字符串,第一个就是当前的报价了
  • 然后就是设置一个加价值,心理价位, 然后提交
  • 再次获得最高价,如果不是我出的那么就再次加价,循环这个过程
  • 当然还是的通过Chrome来知道提交加价的请求应该是什么
    这里直接列出结果:http://paimai.jd.com/services/bid.action?

查询价,然后加价,最后提交的源代码如下:

var t,count = 1,price=0,pin = getCookie('pin'),f = function(){
    $.ajax({
    url:'http://paimai.jd.com/json/current/englishquery?paimaiId='+paimaiId+'&skuId=0&t=964468&start=0&end=9',
    async:false,
    success:function(data){
        var currentPrice = parseFloat(data.currentPrice);
        console.info("第",count,"次检测商品当前拍卖价格是",currentPrice);
        if(data.auctionStatus == 2){
            console.error("商品拍卖结束,获得者",data.currentUser);
            clearTimeout(t);return;
        }
        if(data.currentPrice < 1500) {
            if(pin != data.currentUser && price != currentPrice){
                $.ajax({
                url:'http://paimai.jd.com/services/bid.action?t=369168&paimaiId='+paimaiId+'&proxyFlag=0&bidSource=0&price='+(currentPrice+1),
                async:false,
                success:function(data1){
                    console.warn("第",count,"次加价拍,本次出价",(currentPrice+1),"出价结果",data1.message);
                    if(data1.result == 200){
                        currentPrice = currentPrice+1;
                    } else {
                        if(data1.result == 516) {clearTimeout(t);return;}
                    }
                }
                });
            } else {
                console.info("商品价格未变,忽略加价");
            }
            price = currentPrice;
            t = setTimeout(f,1000);
        } else {
            console.error("商品价格高于原价5折,停止加价");
            clearTimeout(t);
        }
    }
    });
    count++;
}
f();

//暂停
clearTimeout(t)

代码还是比较简单,就不多做解释了。这里说一下有个关键的地方是网页分析的部分。就是从请求中拿到了自己想要的数据。
这样样例的请求是一个json,所以能够直接用了,如果是一个html网页应该怎么办呢?
因为现在的网页一般都用了jquery,所以可以使用jquery脚本来做。他的拾取器还是之棒的。
比如这样:
var val = (‘tr:eq(2)′,html);(‘td:gt(1)’,val).html() 第二个tr的第一个td. 等等

服务器如何防备

最后咱们来说说如何防范这种做法。

  • 让登录变难, 防止代码自动登录。 12306的网站的验证码跟高考题一样,就是为了这个,尽量只能真人用户。
  • 但是因为sessionid是放在cookie中的,可以用代码来模拟cookie来保持登录状态,所以就引入了cookie加密的方式。 但是不能解决上面说的js脚本的问题。
  • 服务器端针对每一个登录用户,限制刷新等次数。 抢华为或者P8的时候经常会遇到太繁忙了啊,请求次数过多啊,等等就是这样的, 具体可以用redis来根据用户的session来存次数,甚至于存在本地内存中。这个有机会详细的说。
  • 服务器不根据真正的请求到达顺序来决定抢购结果。 可以建立一个池,然后从最小到达的100000请求中取出部分,这样就能够防止,脚本比人快,导致大量都是用脚本抢到的,会相对公平一些。
  • 都是简单的说一下,以后咱们有机会细讲。
时间: 2024-08-01 11:00:42

月饼事件技术还原 - 用js+Chorme来做抢电商的东西吧的相关文章

阿里资深技术总监:基于大数据的全球电商系统性能优化

本文首先介绍AliExpress电商系统的理论基础,通过页面间跳出率的计算引出全栈优化的思路.然后,介绍AliExpress平台的设计思路和性能优化过程,以及AliExpress使用过的几个有效的优化策略:动态加速.静态化+ESI.元素合并请求.CDN调度优化等.最后,用实例展示了性能优化带来的结果,并对架构设计的过程提出了几点思考和总结. 1整个系统的理论基础 这张图代表流量分布和跳出率的关系.一个用户放弃使用一个网站或者APP的行为叫做跳出.上图中,横轴代表延迟区间,纵轴代表流量分布.绿色的

【JAVA秒会技术之压力测试工具】JMeter在电商开发中的简单应用

一.JMeter简介 Apache JMeter是Apache组织开发的基于Java的压力测试工具.用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域. 二.JMeter安装 下载地址:http://jmeter-plugins.org/downloads/all/ 1.解压apache-jmeter-3.0.zip: 2.解压JMeterPlugins-Extras-1.4.0.zip 和 JMeterPlugins-Standard-1.4.0.zip 并分别复制

【沉淀】记录电商时代下的技术人:访谈阿里高级技术专家玄宗,我的十年阿里路

<沉淀>是展示专家风采的人物栏目.它呈现每个专家独一无二的人生经历.认识和感悟的同时,也能帮助你沉淀技术,收获对技术和人生的判断.我们的想法是:"若你想精进为一个很厉害的人,不妨细细品味这些技术牛人背后的沉淀."如果你想了解这些云栖专家更多分享时,请点击云栖专家频道,当然我们也欢迎你往前走一步,成为我们的云栖专家(https://yq.aliyun.com/expert),与技术大牛一起"煮酒论英雄". 电商,正改变着中国人的生活. 荒远偏僻的地方,通过

传统行业做电商:6招教你做好事件营销并让网站盈利

中介交易 SEO诊断淘宝客 站长团购 云主机 技术大厅 对于传统行业的电商网站来说,想在短时间内快速的提高企业.产品.网站的知名度和美誉度并树立良好的品牌形象,其营销手段是必须要把握好的,而且营销人员在选择营销方式的时候也要注意,要清楚哪些营销方式可以给你带来直接的效果,哪些营销方式无法给你带来效果,关于营销的效果要做好测试,最终将它选定.目前来说,能够把知名度和美誉度做到直接效果还是有的,比如事件营销,对于一些企业来说也是活动营销. 何为事件营销?可能一些初出茅庐的电商站长不是很了解,对于笔者

CTO VOICE:移动电商创业中的那些技术问题

在移动互联网创业中,最成熟的模式应该是移动电商,在其它领域还需要培养用户习惯时,移动电商创业者已经开始精细化运作,高流量+高转化+提高重复购买+降低运营成本是移动电商的成败关键,也是创业者最关心的问题. 3月12日,移动应用云服务提供商APICloud举办的CTO VOICE活动中,邀请了三位拥有资深开发和实战经验的技术大拿,与移动电商创业的CEO们对话,从技术角度切入,谈谈移动电商运营过程中遇到的那些问题. 以下是问题精选: 嘉骏丽和CEO张广明:自有品牌应该依托在淘宝.京东等成熟的电商平台,

数据+技术 双向驱动电商营销发展

在近日由亿玛公司主办的"第四届效果整合营销高峰论坛"上,易观智库发布报告称,2012年中国电商网络营销市场规模将达到204.3亿元,市场环比增长68.3%:到2015年,中国电商网络营销市场规模将达到488.7亿元,较2011年市场年均复合增长率为41.6%.由此可见,电商网络营销的市场规模很大,而数据和技术在推动电商营销规模发展上将起到巨大的推动作用. 用数据来指导运营 大众点评首席流量官卢鑫表示:"数据本身是个非常大的金矿,看你怎么挖掘."对于数据如何利用,卢鑫

电商技术饕餮盛宴备战第二轮电商大战

--2014首届商派电商技术大会(2014年6月13日上海)2000年西湖论剑吹响了中国互联网高速发展的号角,2014年商派电商技术大会打响了第二轮电商起跑的发令枪.2014年6月13日,由国内领先的电子商务服务提供商商派(Shopex)主办的2014首届商派电商技术大会(SETC)在上海盛大召开.活动以"技术驱动商业未来"为主题,为电商业界提供最前沿的电商技术饕餮盛宴.商派CEO李钟伟提出"电商第二轮"的观点.2014首届商派电商技术大会获得了CSDN.亿邦动力.

作为安全团队的leader,如何看待阿里月饼事件?

   阿里安全团队的4个程序员利用秒杀应用缺陷写个js脚本抢购月饼,最后被开除了.剩下那个属于阿里云,处理结果还在讨论中. 这个事件其实很多人不解,不过是在内网抢购的小程序,写了个脚本刷多了月饼,又没有抢鸡蛋,没购买就报告给HR,怎么就被开除了呢?那么,作为安全团队的leader,都是如何看待这件事的?为此,雷锋网(公众号:雷锋网)编辑和几个安全团队负责人聊了下,来听一听他们的看法. 360无线电硬件实验室掌门人  杨卿: 如果在我们这,跪的会是写出那套平台的相关人员. 以在360信息安全部多年

“无文件”恶意程序攻击技术还原

本文讲的是"无文件"恶意程序攻击技术还原, 最近几天,超过140家美国.南美.欧洲和非洲的银行.通讯企业和政府机构感染了一种几乎无法被检测到的极为复杂的无文件恶意程序,搞得大家异常紧张,似乎碰到了什么神秘攻击.今天就让我们跟随安全专家的脚步来一探究竟. 其实这种类型的感染并不是第一次出现,几年前卡巴斯基就曾在自己企业内部网络中发现了这种在当时前所未有的恶意程序,并将其称为Duqu 2.0.Duqu 2.0的来源则被认为是震网,是当时美国与以色列为了破坏伊朗核计划专门合作创建的一种极为复