小米開放購買代碼門,購買權限門後續——在開放購買之前,能不能購買成功已經被小米伺服器決定 4 e3 Z! X* ?+ |4 w - K) b" \" v" O9 {9 L/ A, Q
關于小米購買權限門事件得從這篇文章說起,如果你們現在打開上面的網址,會顯示提示: 作者被禁止或删除 内容自動屏蔽。但是作者似乎并沒有幹什麼,隻是在文章内容裡說了幾句髒話,小米論壇管理者就屏蔽了該作者,不禁讓人浮想連篇。根據下面的回複我們還是可以知道大概發生了什麼事情。在小米論壇上,另外有人引用了該作者的原帖,複制粘貼了該作者的文章内容,并且加以驗證。文章位址如下。這位作者因為沒有激烈的言辭,内容沒有被禁止,我們可以看到文章的内容,資料顯示,在回複數達到102的時候,論壇管理者出現,使得這篇文章沒有被繼續回複,浏覽數不過2000,是以,大部分人還并不知道,小米搶購需要排隊後,并不是所有的帳号隻要預約了就有權限參與搶購小米手機,有的帳号可以連續不斷,從8月12号到10月8号,每次隻要排一次隊就可以順利搶到一台小米手機,可以說,逢搶必中。他們并不清楚,其實,小米每次搶購是否能通過排隊進入搶購頁面,早就被小米背景決定好了。如何知道你有沒有機會呢?文章裡作者給出方法 5 T8 v$ ]( H+ J6 n, g6 s( k/ X8 l + u; x' b+ C! u8 g
1. 首先登入自己的賬号 $ B; {, r" v4 @( M- x3 c
2. 在浏覽器位址欄輸入 tc.hd.xiaomi.com/hdget?callback=hdcontrol 通路然後會傳回一段代碼,
格式如下: . M3 z3 d3 j l/ \2 m! F
hdcontrol({"stime":1381645438,"status":{"allow":false,"miphone":{"hdstart":false,"hdstop":false,"hdurl":"","duration":null},"mibox":{"hdstart":false,"hdstop":false,"hdurl":"","duration":null}}})) 8 Y% L& X1 d: o8 j" u1 X
如果allow後傳回的是 false 就表示沒有權限,禁止購買了,就算你速度再快,也不可能買到,傳回是true才表示有權限,才有機會能購買到。
這個怎麼了解呢?要了解這個得首先用JS格式轉換器,把上面的代碼進行轉換,轉換結果如下 5 N2 U3 x( ^* \0 O, R
hdcontrol({ 4 @9 G! ^5 v0 L8 y" \1 s
"stime": 1381645438,
"status": { * q& }/ `: `3 [ 7 x# g+ S9 M5 V, P4 ^, x- Y1 y
"allow": false, 4 o! Q4 w2 u2 J8 W' @9 M. B
"miphone": { - T2 U- o3 X; n8 _4 k% J( d
"hdstart": false,
"hdstop": false, * D9 f0 L3 t- K * y0 Y# d: s7 h. e" l
"hdurl": "", - V: B6 E; t' R1 a V
"duration": null ! D- ~$ S7 ]1 c* _ U5 U' n# j% ~6 q- W( f; _. I5 W
},
"mibox": {
"hdstart": false, 5 ]' y3 E q O$ O4 I; Z , e7 @- ?/ N9 R
"hdstop": false,
"hdurl": "", / _4 Z) X3 @! o( R: J) z* Y
"duration": null Z: u, \6 l! R* \% a
} 0 K/ M$ P5 _- ^, B; q
} * n6 ]. t! @5 \0 r* d
})) 9 H0 I1 `$ s( [: ]8 f w6 K
搶購開始的時候,hdurl 後面會是小米手機的搶購網址(去域名後)。稍微懂代碼常識的人都知道,當allow後面的值為false的時候意味着下面的代碼将不被執行,也就是說,你進不了頁面,把搶購網頁複制到浏覽器連結欄直接打開,小米伺服器也會駁回你的請求,把你送回排隊頁面。這還意味着,當allow後面的值為true時,你向小米伺服器發送的請求才會被受理,讓你進入搶購頁面,于是allow後面的值為true就成為了是否有機會購買小米手機的一個重要權限。根據這篇文章作者的原話(已被禁止),我們知道,一開始這個作者的帳号allow後面的值為true,并且該作者因為allow後面的值為true,在排隊系統出來後成功購買了多台小米手機,并且根據多個帳号的測試結果,得出結論:allow後面的值為true才能進入搶購頁面選購小米手機,而且作者強調了,是有機會,有進去的機率,而為false則是無限排隊,或者進去就被彈出,無法購買小米手機,相信你們中一定有很多人已經忘記了小米選版本的頁面是什麼樣子。該作者之是以曝光這個問題,是因為既得利益的失去,他的帳号前幾次allow後面的值還為true,還能購買小米手機,現在allow後面的值為false,無法購買。正是因為這個動機,讓我相信該作者,覺得他說的有道理。樓主自己用自己的帳号進行了測試,發現為false,這正好驗證了我無法進入搶購頁面,無限排隊的事實。但是這不足以說明問題,我還需要對比,我有個同僚,每次排隊隻要排一次,第二次點進入活動,立馬進去,每次都能買到一台小米手機,讓樓主眼紅了很久,樓主曾經嘗試了所有的東西,包括電腦系統,網速,網絡,浏覽器,每一次我都讓自己的搶購環境和他一樣,但是每一次我都是無限排隊,他每次都進。這讓樓主納悶了很久,我把同僚的帳号拿來進行測試,頓時五雷轟頂,簡直要背過氣,氣瘋了。
hdcontrol({ ) J8 Q& R9 s" {4 G- D
"stime": 1381645344, 6 M8 S" P1 D x. a4 V1 D9 J * m/ B$ I# u4 F$ C& J0 A' @
"status": { ( V5 G+ v" W3 ^4 I z% o+ |1 q
"allow": true, / q$ ~: B; N3 b% j5 {* P% f
"miphone": { " ~ d- \* M) L3 x& p: i % m n4 ~" x: h% S2 p/ @9 d2 H
"hdstart": false, J+ `: c) ]6 Q% I ; u3 {" {( k6 ~4 @3 M; @
"hdstop": false, 7 ~* i) y& p2 {
"hdurl": "", ) K( ]; W+ V8 K; G
"duration": null , X5 E9 ^4 v( `5 ?
}, 7 {: y) v) S+ l6 C
"mibox": { + M5 n( L# P# i4 D7 h+ P v 9 {4 V7 a* l3 N6 ?2 D
"hdstart": false, , |, y; A! H" i b3 ]1 a! `( V# o- g 8 U: K, ^9 f- Z+ Y h
"hdstop": false,
"hdurl": "", % E' Y) A7 I2 i& {$ _! N3 l) F- r
"duration": null & M% M4 L% ^6 T0 M; H" o
} , }. L, p( d- M
} ' f4 t1 W7 r I4 t: d
})) ' ~ W! p. d4 l( `% T1 j- u/ F% p
以上是他的傳回值,自此樓主總算明白了為什麼他每次搶購都能成功,真的不是網速不是人品不是運氣,根本問題就出在帳号上。 1 D* \8 a# w7 a' o2 C# m
樓主仔細研究過搶購時調出來的排隊視窗,這個視窗的作用有兩個,一個是統一化資料傳送格式,使得所有通過排隊向小米伺服器發送請求的資料格式相同,便于伺服器識别,另一個就是錯時減輕伺服器壓力。這也正是直接複制粘貼搶購網址到連結欄被彈回開放購買頁面的原因,伺服器拒絕非上述格式的請求,想通過直接複制粘貼網址的形式肯定行不通。那麼通過直接發送資料的形式請求搶購頁面是不是行的通呢?我以為是可以的,隻要資料格式和通過排隊發送的資料格式一樣就可以。那請求是不是能通過呢?是不是可以通過大量的發送資料,請求搶購頁面呢?一開始我以為是可行的,直到我看見了上面因為既得利益失去是以曝光内幕的作者發的文章,恍然大悟。最終的決定權其實還是不在使用者手裡,排隊隻是減輕伺服器壓力,延長搶購時間的一個政策,能不能進入搶購頁面購買手機,甚至都不怎麼和機率相關,關鍵得看小米的伺服器。我大膽的作出了一個假設,小米系統背景偷偷的對一部分帳号進行了特殊标記,一般情況下看不出差別,但是每次搶購活動就會展現出差别,比如優先購買權。比如之前同僚的帳号,排隊隻要一次,可以連續買多台。上面文章裡的方法就可以進行檢測,allow後面的值為true,就代表你的帳号被特殊标記上了,有優先購買權,(14号下午六點左右,該通道已經關閉,今天再次開放,大家可以去進行測試,測試得出為true 進入這個網頁[這是9月3号的搶購頁面,因為留着有作用,具體的作用,發現小米排隊BUG的人都知道是幹啥的,在這個頁面點選立即購買,true隻需要排一次隊即可進入小米網,原因是hdurl後為空,自動跳回主域,正好是在這個頁面測試得到的結果會和你們今天的搶購結果非常接近,在這個頁面無限排隊也就等于你的帳号今天會一直排隊到活動結束,不信,我們拭目以待)。 2 {3 Y' Z4 |" y6 [3 c: s
小米論壇管理者關于這個問題的回複堅決異常:九五先生 小米公司技術團隊 ) h4 Q4 d3 J: p$ d
該問題在原帖做出解答,首先小米手機的搶購方式一定是公平的,樓主所列出的代碼與是否預約成功和能不能搶到沒有必然的關系。主要是由于預約人數過多,是以小米采用了不同的機制來保證使用者進行搶購,true和false僅僅是其中一種機制的傳回值,是以完全不存在樓主所說的情況。 ! i% D" R: ? z* H0 P3 L+ v
關于小米論壇管理者異常堅決的回複更讓樓主覺得事有蹊跷,要知道,他們平時可都是會說,有什麼事情可以去辦事大廳或者什麼什麼的。。。這次的回複是完全不存在樓主所說的情況。你們要知道,無風不起浪。你們要知道,真的不是隻有一個帳号連續多次逢搶必中。你們要知道,樓主做過了資料分析,檢測了多個多次成功購買的帳号才敢發帖。關于證據樓主完全可以給你們看截圖,樓主也很想把帳号給你們讓你們自己去看,可是帳号是别人的,這個帳号allow後面的值還為true,米3的搶購會給他帶來更多的收益,我可不能砸了人家的飯碗,按照每個月4場搶購,隻要保證帳号allow後面的值為true,那麼他一個月隻要每周二在電腦前面代幾分鐘,就有一兩千的收入,這個你們清楚麼?如果完全不存在樓主所說的問題,為什麼有的帳号排隊一次就肯定進,有的帳号排了無數次還是進不了呢?機率不是這樣算的吧,有的帳号是100%,而有的帳号是0,你們所說的機率應該是 (allow後面的值為true的帳号個數*100%+allow後面的值為false的帳号個數*0)/總帳号=開放購買的實際手機數量/預約人數。你們看吧,這一定就是95先生口中所說的一定公平,一定是處理資料的人蒙蔽了他的眼睛,用這樣的伎倆糊弄他,告訴他,開放購買是絕對公平的。他才覺得一定公平,這真的不是95先生的錯,請大家不要怪他,他隻是不知情而已。如果他真的知道有人用這樣的方式欺騙使用者,那他一定會站出來主持公道,我真的真的絲毫沒有貶低95先生的意思,我知道你們中有很多人很愛戴95先生,我也和你們一樣,盲目的愛戴他而不管他的身份和立場,隻要有人貶低他,就會站出來替他說話。 7 Q5 o3 F6 [) A/ n
現在檢測通道已經關閉,究竟是出于什麼原因,我不清楚,我隻知道,我的同僚今天又購買成功,并且成功地賣了帳号,有了400元的收入。而我依然沒有搶到,盡管我很努力地讓自己的搶購環境和他一樣,但是你們也清楚啊,就算搶購環境一樣,他能搶到你搶不到也隻是是人品問題的嘛。誰讓你的帳号沒有被特殊标記上呢? " q) H8 M1 S) T" R0 { , m, _/ t& z8 c5 }
這種通過背景對帳号進行特殊标記的方法顯然為一些帳号創造了巨大的便利,既然小米可以通過背景對一些帳号進行标記,那我們怎麼知道他們究竟對哪些帳号進行了标記呢?如果,我是說如果,小米通過這種技術手段(其實也不是很複雜,隻要提前将某些帳号拉進資料庫,與向伺服器送出請求搶購頁面的帳号進行比對就行了,你們說,有沒有道理,同僚的帳号被拉進去了,比對之後得出了true,我的沒有被拉進去,比對得出的是false,無法進入搶購頁面)将大批量小米内部員工注冊的帳号進行标記,小米就可以光明正大的跟大家說我們放了10萬台,搶購持續了很長時間,你們沒搶到說明運氣不好,下次再來吧。然後轉過身,把内部員工搶到的資格号變賣,或者不購買,而是把庫存留給其他電商,讓他們光明正大的加價出售。而小米手機仍然保持着高成本效益的名聲,加價這種事與他無關,是淘寶商家的不對,是其他電商的不對,都是他們的錯。當然了,我并不清楚排隊系統出來之後,小米的搶購活動存不存在監守自盜,我在這裡隻是從原理上給大家揭示監守自盜行為可能存在的合理性和實際操作上的可行性。是不是真的有這樣的事情我們并不清楚,我們根據原理完全可以推測出實際操作的可行性。我們再假設,小米内部保留了大批量已經被标記好的小米賬号,雇傭一定的人員,沒人發多少多少個,在每次開放購買的時候進行搶購,如果開放購買持續2分鐘,手動操作,每人至少可以搶20個。如果小米内部自主開發出軟體,那更是沒話講了,從帳号,代碼到驗證碼,全路通關,在成千上萬的人向伺服器發送的請求被拒絕,停留在搶購頁面的時候,小米已經保留下了大量的庫存。你們說,怎麼能保證這樣的事情沒有,不會發生。要證據麼?要證據麼?你們沒有看見很多人在曬自己一次又一次的成功搶購截圖麼?你們沒有看見圖檔裡每次開放搶購他們總能買到一台麼?你們沒看見論壇管理者極其明确的表态說這種現象是完全不存在的麼?你們沒有看見有人因為既得利益的失去開始曝光讓小米難堪麼?你們沒有看見米粉因為長期搶不到小米抓住這個機會死咬不放祈求能夠通過輿論的壓力讓搶購更加公平公正麼?你們不抓着這個機會和樓主一起,還要在機會失去之後接着可憐兮兮地被坑麼?
源連結:http://bbs.xiaomi.cn/thread-8349097-1-1.html