路由器裡的廣告祕密
撈油水
“今天的工作累死了,這好色的人類看了這麼多視訊,可把我忙的夠嗆”,負責資料轉發的阿斐癱坐在椅子上,沒了精神。
“別抱怨了,咱們所在的路由器就是幹這活的,這就是命啊,來抽一支放鬆下”,一旁負責WIFI連線的阿訊遞來了一支香菸。
阿斐接過香菸,掏出打火機點燃,猛吸了幾口。
阿斐和阿訊是路由器中的兩個模組,打出生起就在路由器中工作,一直勤勤懇懇為人類能夠連線網際網路默默工作。
“你要是覺得這工作乾的沒有奔頭,要不咱想個辦法撈點油水?”,阿訊朝阿斐擠了下眼睛。
“咳~~,”,阿斐嗆了幾聲,“撈油水?怎麼個撈法?”
“你看啊,你每天經手那麼多資料包,隨便挑一些HTTP協議傳輸的網頁,在裡面插入一點廣告,咱不就可以賺錢了嗎?”
“啊,這樣啊,這不太好吧,要是被發現了怎麼辦?”
阿訊吐了一個菸圈說到:“怕啥,就是一點廣告,不礙事,這些人類早就習慣了滿屏的廣告了,不差這一點。你要實在擔心,那咱設定一個概率,比如只有20%的網頁插入廣告,這樣就不容易被發現了。”
“聽上去可行,只是不知道具體怎麼操作呢?”,阿斐又問道。
“這樣,咱們分工下,廣告的事情我去負責,我去聯絡下廣告商,至於如何修改資料包插入廣告,你去研究一下,好吧?”
“好嘞!”,說完阿斐和阿訊戳滅了手裡的菸頭,開始分頭行動。
網頁篡改
阿斐拿出了前端技術指南,研究了一晚上終於想到了方案,第二天找到阿訊商量。
“訊哥,我有辦法了!”
“哦,這麼快,說說看,什麼辦法?”
“我可以在HTML網頁中直接插入<iframe>標籤,裡面就可以嵌入我們的廣告啦!”,阿斐自豪的說到。
“嗨,就這啊,我還以為你有什麼好的辦法呢!這麼簡單還用你想”,阿訊有點失望。
“怎麼了,這有什麼不對嗎?”
“不是不對,你要考慮咱們的廣告又不是固定一個,你不能這樣固定寫死啊。”
“那簡單,換成<script>標籤,在網頁中插入一段JS程式碼,去咱們的web伺服器動態拉取廣告,就可以靈活管理了,怎麼樣?”
“還是不行,瀏覽器發現跨站指令碼訪問會禁止的!”,阿訊再一次否定了阿斐的方案。
“跨站指令碼?這是什麼意思?”
“你回去再研究研究吧”,阿訊說完就離開了。
原先興高采烈的阿斐一下子像洩了氣的皮球,本以為可以大功告成沒想到被潑了一盆冷水。
阿訊走後,他又搬出來前端技術指南,打算研究一下這個跨站指令碼是個什麼意思。
半晌過去,阿斐總算弄懂了,隨即也想出了新的辦法,下午又找到了阿訊。
“迅哥,我又有辦法了。瀏覽器只會限制<script>中的JS程式碼,但不會限制通過外部引入的JS哦”
“外部引入,什麼意思?”
“把我們的程式碼寫在單獨的檔案中,然後像這樣引入到原網頁中,就可以搞定了”,阿斐一邊說,一遍給阿訊畫了一個示意圖:
<html> <head> <script src="http://xx.xx.xx.xx/xx/x.js"></script> </head> <body> ...... </body> </html>
“嗯,剛好我這邊聯絡了一個淘貝網的廣告,咱們來試一試”。
302重定向
按照這種辦法,阿斐和阿訊開始了他們撈油水的嘗試。
阿斐在資料轉發的時候,遇到HTTP協議的資料包,就看一下Content-Type是不是text/html,如果發現傳輸的內容是html網頁,就在<head>標籤中插入一個外部引用<script>,通過這個外部的JS指令碼動態的生成一個<iframe>載入他們的廣告。
很快,阿訊就統計到了廣告的拉取資料和點選,看著數字蹭蹭的增長,他倆高興壞了。
阿斐和阿訊靠著修改資料包插入廣告賺得盆滿缽滿,不知不覺就過了一個月,意外卻發生了。
這一天,阿訊急匆匆的找到阿斐,“阿斐,最近廣告拉取和點選資料直線下滑啊,什麼情況啊?”“難道我們插入在網頁中的內容被安全軟體發現了?彆著急,我想想辦法”,阿斐開始思考對策。
思考一會兒後,阿斐打了一個響指,“有了!咱們不修改HTML網頁!修改它引用的JS檔案”
阿訊一臉問號,沒太聽懂,“修改JS檔案,什麼意思?”
“迅哥,你看,現在的網頁一般都會引用很多JS檔案,比如JQuery這種公共的前端庫程式碼,咱們要是在這個JQuery檔案中做點手腳,你想想呢?”,阿斐一邊說一邊挑了挑眉毛。
“你小子,腦子挺靈光嘛!挺不錯的想法,我給你再加一招”
“哦,還有什麼招數,願聞其詳”
“你也別每次修改資料包了,麻煩還容易出錯,要不提前把修改後的檔案準備好,到時候遇到對應檔案的請求,直接用一個302重定向,豈不是更省事?”,阿訊說完拍了拍阿斐的肩膀。
“302跳轉?我怎麼沒想到,佩服!我這就修改下方案”
當天,阿斐就修改了方案,很快就見效,廣告的拉取資料又漲回來了。
晚上人類已經睡了,兄弟倆好好的慶祝了一番,原以為在路由器幹活是一件艱苦差事,沒想到是個肥差,兩人喝了個酩酊大醉