今天小編分享的科學經驗:12306申請防止自動搶票專利,搶票軟體還有用嗎?,歡迎閱讀。
今天是春運的第一天,大家都搶到票了嗎?有多少打工人是定時搶票,不停地刷新網頁,最後仍然不得不花大價錢買 " 搶票加速包 " 才買到票的?
這兩天關于 "12306 已申請防止自動搶票專利 " 的新聞衝上熱搜,引發廣大網友的關注。
那麼,為什麼有了軟體加持,就真的能買到緊缺的車票呢?如何才能防止自動搶票呢?今天從技術的角度來聊聊。
圖片來源:網絡截圖
網上購票時,到底發生了什麼?
在 12306 上買火車票,和在淘寶、京東這些電商網站上買東西,基本的流程是相似的,大概可以抽成登錄、查詢、選擇、确認、支付這樣幾個步驟。
登錄是購票的前提,它會驗證使用者的身份是否是自己聲稱的身份,涉及個人信息的确認。
其原理也很簡單:用戶輸入自己的用戶名和登錄密碼,購票系統在自己的用戶數據庫中查詢,看看用戶名和密碼是否正确。如果正确的話,就認為用戶身份可信。
圖片來源:網絡截圖
在這一階段,風險在于用戶身份可能被仿冒。仿冒者可能會大量嘗試不同的密碼,或者使用其他網站洩露的密碼,來仿冒真正的用戶身份。
而通用的解決方案是雙管齊下:當用戶連續幾次輸錯密碼,就在一段時間内禁止登錄;以及在用戶輸入密碼後,再經過一個驗證步驟,來讓用戶拖拽拼圖,或者在一系列圖片中找到符合要求的圖片。
過去的 12306 曾因為驗證難度過高而為人诟病——在早期,12306 的第一次驗證通過比例只有可憐的 8%。當然,在經過多年持續改進後,這一問題已經被解決得差不多了。
确認了用戶身份後,接下來就是一路坦途。用戶先根據自己的出發地和到達地查詢餘票情況,然後選擇自己想要的車次;然後選擇乘車人和座位信息,确認選擇正确後,支付票款。
這個過程,其實和用戶把身份證遞給火車站售票處的工作人員、由工作人員代為選票的過程是一樣的,只不過實現了完全自助而已。
有餘票時,這個過程當然沒有問題,大家按照先來後到的順序逐一購票就好。但若是餘票不足,而大家又都想買到票,那麼就不免有人想要上一些技術手段了。
為什麼技術手段可能可以搶到票?
購票時的技術手段,就是自動化搶票。自動化搶票的基本思路,是讓計算機模拟人的行為。
個人使用:若是開發一個僅僅自己使用的自動化搶票程式,還是比較簡單的。先用自己的個人信息登錄,人工通過身份驗證,然後以較高的頻率持續查詢想要的車次,當查詢返回的數據表示有餘票時,馬上下訂單。
此時的關鍵,在于分析返回的查詢結果。而這也不難,畢竟查詢結果是返回的一串文字,從中提取信息比較容易。這就像是站在售票處視窗,過兩分鍾就問一次有沒有票一樣,反正 12306 的伺服器是機器而不是售票處工作人員,只要計算能力允許就能做到有問必答,不會覺得這樣問來問去很煩。
多人使用:而若是要為許多人搶票,就會麻煩一些。幫助用戶登錄和通過驗證比較麻煩,畢竟讓計算機像人那樣識别圖形、通過驗證過程還是有些難度的——驗證碼發明出來,就是為了讓計算機難以冒充人。
圖片來源:網絡截圖
不過既然是技術問題,那往往也就會有技術解決方案。随着計算機視覺技術的發展,攻破圖形驗證碼并不是難以做到的事情,只是拉高了技術門檻而已。
所以自動化搶票的過程,就像是一群人堵在售票處視窗,過幾秒鍾就有人過來問一遍有沒有票,直到買到票或者過了售票時間才罷休。
圖庫版權圖片,轉載使用可能引發版權糾紛
自動化搶票會帶來幾個後果:對那些規規矩矩排隊買票的用戶不公平;浪費了 12306 伺服器的計算資源,可能降低 12306 用戶的購票體驗;以及降低了所有用戶的幸福感——沒有買到票的用戶自然不高興,而加了錢搶到票的用戶也未必開心。
所以當然,為了防止自動化搶票,也該有相應的技術手段才是。
如何防止自動化搶票?
有幾個基本思路可以提高自動化搶票的技術難度。
1. 識别來自自動化搶票軟體的行為,找到那些自動化搶票的機器黃牛。
具體而言,可以通過分析伺服器的訪問情況,篩選出那些短時間内頻繁查詢車票信息的機器,禁止它們訪問;而自動化搶票軟體為了對應這一方案,則往往會采取頻繁更換 IP 地址的方式。所以這種思路,只能作為基礎。
2. 讓自動化搶票軟體無法獲得有效的餘票信息。
如前所述,我們向 12306 上發起的每次餘票查詢,都會向用戶的浏覽器返回一串文字,而搶票軟體會分析這串文字,獲取餘票信息。如果返回的不是文字,搶票軟體要處理起來就會麻煩得多。畢竟計算機視覺和人類視覺很不一樣,人能一眼看出來的東西,計算機識别起來并不容易。
圖片來源:網絡截圖
2021 年 11 月,中國鐵道科學研究院電子計算技術研究所申請了一項名叫《一種防止自動搶票方法及系統、設備和存儲介質》的專利,采用的就是這種思路。在這項專利中,研究者把查詢後的餘票信息轉換成了可伸縮矢量影像 ( SVG,Scalable Vector Graph ) ,再發送回用戶的浏覽器上。
SVG 是一種很有意思的影像格式。它是影像,但卻用文字來描述影像中的位置、顏色、線條寬度等等信息;它使用相對點來保存數據,因此可以縮放到任意大小而不會失真。這兩個特征,讓它既可以容易地通過程式繪制,也适合出現在任意大小的顯示器上。
在放自動化搶票上,它的這兩個特征就很有用了:查詢返回的是圖片,傳統的自動化搶票軟體無法從中提取出和車票信息相關的文字,自然也就無法搶票。而手動購票的用戶,能識别出這些圖片中的車票信息,依然只需點擊想要的車次信息,就可以繼續購票。
在上文所述專利中,也提出了一種巧妙的驗證方式:使用文字組合,實現基于文字推理的行為驗證。就是讓用戶在購票前再通過一次行為驗證。
具體而言,大概像是這樣:首先,随機選擇幾個漢字,把它們轉成 SVG 影像,再抽成上下兩部分。然後,展示這些漢字的上半部分,和其中一個字的下半部分。最後,讓用戶找到正确的拼合方式,只有組成正确的漢字,才算通過驗證。
只有圖 5 才是正确的。圖片來源:上述專利說明書
自動化搶票軟體要通過這種驗證,則需要 " 認字 " 才行,也就是說需要擁有一個字庫,以及能夠對照字庫尋找正确的拼合方法,這無疑會增加自動化搶票的難度。
總而言之,要防自動化搶票,就要為購票系統設計一些障礙,這些障礙對于人來說不難,而對于計算機來說暫時還很難。
畢竟需求就是動力,計算機的能力也會提升。技術會逐步更新,自動化搶票和反自動化搶票會是一場持續的拉鋸戰。
策劃制作
本文為科普中國 - 星空計劃作品
出品|中國科協科普部
監制|中國科學技術出版社有限公司、北京中科星河文化傳媒有限公司
作者|猛犸 哈爾濱理工大學
審核|于旸 騰訊玄武實驗室負責人
策劃丨符思佳 林林
責編丨符思佳 林林
相關推薦
3.洗澡搓下來的 " 泥 " 越多,洗得越幹淨?你可能一直都做錯了!
4.你的洗衣液放太多了!這 8 個洗衣盲點大多數人都沒搞清楚
5.饅頭放冰箱超過 3 天會產生黃曲黴毒素,吃了能致癌?真相是 ......
本文封面圖片及文内圖片來自版權圖庫
轉載使用可能引發版權糾紛
原創圖文轉載請後台回復 " 轉載 "
點亮 " 在看 "
一起漲知識!