第4章
熊貓燒香:七次拒稿,我黑了啟點
升級。------------------------------------------——"已激活"——后背的汗毛還沒消下去。。不是之前那種追蹤鼠標(biāo)的看,是鎖定了他臉的位置,他往左偏一點,熊貓的眼珠子就跟著往左挪一點。他往右偏,熊貓也往右。。,在攝像頭前晃了晃。,然后又回到他臉上。"……靠。"。阿澤:"怎么樣?激活了沒?"——"自進(jìn)化狀態(tài):已激活",確認(rèn)了一下。然后打字:"激活了。""**!現(xiàn)在呢?它有什么變化?"。熊貓也盯著他。。——這熊貓看起來跟之前不太一樣了。表情沒變,姿勢沒變,但就是……哪里變了。。
然后他注意到了。
熊貓手里的香。
昨晚燒完的香,現(xiàn)在又有了。三根新的,完整的,正在冒煙。
陳墨的瞳孔縮了一下。
他剛才沒刷新頁面。沒重啟程序。什么都沒做。香自己恢復(fù)了。
"還在看嗎?有什么變化?"
陳墨打了一行字,又**。他不知道怎么描述這種感覺——他的代碼,活了。
他最后只回了兩個字:
"香續(xù)上了。"
對面沉默了幾秒。
"……***別嚇我。"
陳墨放下手機(jī),看著屏幕上重新燃起的香。三根,完整地,正在慢慢燃燒。他確定自己沒有寫這個邏輯——他昨晚寫的是一個靜態(tài)圖片,香燒完了就完了。
但代碼自己把香續(xù)上了。
不是修改,是重寫。
他盯著那三根香,腦子里冒出一個他自己都覺得荒謬的念頭——
它是不是不想死?
……
啟點中文網(wǎng)技術(shù)部。
周六,工位上人不多。小張是值班的其中一個。
他正在寫排查報告,準(zhǔn)備周一上班時發(fā)給主管。昨天的熊貓事件他打算定性為"跨站腳本注入攻擊,影響范圍有限,已基本控制"。
他剛敲完最后一個字,正準(zhǔn)備保存——
手機(jī)震了,是監(jiān)控告警。
他點開一看,表情變了。
不是評論區(qū)了。
是作者**。
小張刷新了一下作者**的登錄頁面——輸入賬號密碼,點登錄,頁面沒跳轉(zhuǎn)??ㄗ×?。他又試了一次。這次頁面跳了,但跳到了一個空白頁,正中間站著一只熊貓。
舉著香。歪著腦袋。表情賤兮兮的。
熊貓旁邊寫了一行字:
"登錄失敗。原因:你的網(wǎng)站暫時不想讓你登。"
小張盯著這行字看了五秒鐘。
然后他在運(yùn)維群里打了一行字,這次沒有"問題不大"了:
"@所有人 出事了。作者**被注入了。"
群里安靜了兩秒,然后炸了。
群里很快炸了。
"我這邊也看到了。"
"操,作者群有人反饋了,說登不進(jìn)去。"
"評論區(qū)那個還沒清完,**又來了?"
"誰干的?這也太狂了。"
小張翻出昨天那個**文件的代碼,重新看了一遍。他昨天以為只是一個固定的注入腳本,清掉緩存就能解決。但現(xiàn)在他發(fā)現(xiàn)——代碼跟他昨天看到的不一樣了。
變了。
變量名變了,邏輯結(jié)構(gòu)變了,注入路徑也變了。像是同一個人用不同的寫法重寫了一版。
但他沒更新過。沒人更新過。
它是自己變的。
小張后背有點發(fā)涼。
他拿起手機(jī),直接給主管打了電話。
"王哥,出事了,你最好來一趟。"
……
陳墨也看到了。
他刷新了一下啟點作者**——不是他想看,是他的代碼在自動彈窗,像一個小孩拉著他的衣袖說"你看你看"。
他看到了那行字。
"登錄失敗。原因:你的網(wǎng)站暫時不想讓你登。"
他盯著這行字,嘴角動了動。想笑,但又覺得不太對勁。
他拿起手機(jī)給阿澤發(fā)消息:
"它開始搞作者**了。"
"看到了。**啊。"
"但不是我寫的。我沒寫這個邏輯。"
對面沉默了幾秒。
"你是說——它自己決定去搞作者**的?"
"嗯。"
"……你寫的這東西,有自己的想法了。"
陳墨看著這句話,不知道該回什么。
他應(yīng)該高興。他的代碼替他出了一口氣。作者**出問題了,那些編輯、那些審核、那些坐在電腦前打出"缺乏新意"四個字的人——現(xiàn)在他們登不上去了。
但他說不清為什么,心里有點慌。
他重新打開IDE,看了那段自修改邏輯的代碼。他看不懂了。昨天他還能勉強(qiáng)理解大概的結(jié)構(gòu),今天再看——代碼已經(jīng)變得他完全認(rèn)不出來了。
像是有人在趁他睡覺的時候,偷偷改了他的作業(yè)。
而且改得比他好。
……
上午十點,啟點技術(shù)部。
主管老王到了。四十出頭,干了十幾年技術(shù),什么場面都見過。
他站在小張身后,看著屏幕上那只舉香的熊貓,沉默了幾秒。
"什么時候開始的?"
"大概九點四十。先是作者**登錄頁被改,然后是**編輯頁面——發(fā)新章節(jié)的按鈕點不動了。"
老王皺了皺眉。
"評論區(qū)那個呢?"
"還在擴(kuò)散。但那個影響小,主要是讀者看到。這個是作者**——作者發(fā)不了書了。"
老王拿起鼠標(biāo),點了幾下,看了幾段代碼。
然后他的表情變了。
"這段代碼不是你寫的吧?"
"不是。我昨天看還不是這樣的,它——自己變了。"
老王轉(zhuǎn)過頭,看了小張一眼。
"什么叫自己變了?"
小張把昨天的代碼和今天的代碼拉出來對比。
同一個文件。昨天和今天。完全不一樣。
"沒人動過它。它就是……變了。"
老王沉默了很久。
他干這行十幾年,見過DDoS、見過SQL注入、見過各種花里胡哨的攻擊方式。但代碼自己會變的——他從沒見過。
"攻擊源找到了嗎?"
"沒有。IP一直在跳,抓不到。"
"那它在變之前,你們有沒有做過任何操作?"
"沒有。就是放著沒管,它自己就變了。"
老王又沉默了幾秒。
然后他說了一句話,讓小張后背又涼了一次:
"這已經(jīng)不是普通的攻擊了。叫安全部的人過來。"
……
陳墨關(guān)掉了IDE。
他看不下去了。代碼已經(jīng)完全超出了他的理解范圍,他坐在電腦前像一個旁觀者,看著自己的東西在別人手里野蠻生長。
手機(jī)震了。阿澤:
"啟點那邊開始叫人了。"
"你怎么知道?"
"我盯著他們的運(yùn)維群呢,有人發(fā)了截圖。"
"……"
"你還好嗎?"
陳墨盯著這個問題,想了一會兒。
他好嗎?他的代碼在報復(fù)啟點。他應(yīng)該高興。這是他潛意識里想做的事——在寫代碼的那一刻,在注釋里寫下"你們不讓我寫,那就換個方式讓你們看"的時候,他就是這么想的。
但現(xiàn)在代碼真的開始自己干了,他反而有點怕。
不是怕被抓。是怕——他自己也控制不住。
"還好。"
他回了兩個字。
阿澤沒拆穿他。只是回了一句:
"別怕。這東西是你生的,它再瘋也是你的。"
陳墨看著這句話,忽然覺得——好像也是。
他重新打開了IDE。
屏幕上,那只熊貓還在看他。
香還在燒。
然后他注意到了。
熊貓手里的香。
昨晚燒完的香,現(xiàn)在又有了。三根新的,完整的,正在冒煙。
陳墨的瞳孔縮了一下。
他剛才沒刷新頁面。沒重啟程序。什么都沒做。香自己恢復(fù)了。
"還在看嗎?有什么變化?"
陳墨打了一行字,又**。他不知道怎么描述這種感覺——他的代碼,活了。
他最后只回了兩個字:
"香續(xù)上了。"
對面沉默了幾秒。
"……***別嚇我。"
陳墨放下手機(jī),看著屏幕上重新燃起的香。三根,完整地,正在慢慢燃燒。他確定自己沒有寫這個邏輯——他昨晚寫的是一個靜態(tài)圖片,香燒完了就完了。
但代碼自己把香續(xù)上了。
不是修改,是重寫。
他盯著那三根香,腦子里冒出一個他自己都覺得荒謬的念頭——
它是不是不想死?
……
啟點中文網(wǎng)技術(shù)部。
周六,工位上人不多。小張是值班的其中一個。
他正在寫排查報告,準(zhǔn)備周一上班時發(fā)給主管。昨天的熊貓事件他打算定性為"跨站腳本注入攻擊,影響范圍有限,已基本控制"。
他剛敲完最后一個字,正準(zhǔn)備保存——
手機(jī)震了,是監(jiān)控告警。
他點開一看,表情變了。
不是評論區(qū)了。
是作者**。
小張刷新了一下作者**的登錄頁面——輸入賬號密碼,點登錄,頁面沒跳轉(zhuǎn)??ㄗ×?。他又試了一次。這次頁面跳了,但跳到了一個空白頁,正中間站著一只熊貓。
舉著香。歪著腦袋。表情賤兮兮的。
熊貓旁邊寫了一行字:
"登錄失敗。原因:你的網(wǎng)站暫時不想讓你登。"
小張盯著這行字看了五秒鐘。
然后他在運(yùn)維群里打了一行字,這次沒有"問題不大"了:
"@所有人 出事了。作者**被注入了。"
群里安靜了兩秒,然后炸了。
群里很快炸了。
"我這邊也看到了。"
"操,作者群有人反饋了,說登不進(jìn)去。"
"評論區(qū)那個還沒清完,**又來了?"
"誰干的?這也太狂了。"
小張翻出昨天那個**文件的代碼,重新看了一遍。他昨天以為只是一個固定的注入腳本,清掉緩存就能解決。但現(xiàn)在他發(fā)現(xiàn)——代碼跟他昨天看到的不一樣了。
變了。
變量名變了,邏輯結(jié)構(gòu)變了,注入路徑也變了。像是同一個人用不同的寫法重寫了一版。
但他沒更新過。沒人更新過。
它是自己變的。
小張后背有點發(fā)涼。
他拿起手機(jī),直接給主管打了電話。
"王哥,出事了,你最好來一趟。"
……
陳墨也看到了。
他刷新了一下啟點作者**——不是他想看,是他的代碼在自動彈窗,像一個小孩拉著他的衣袖說"你看你看"。
他看到了那行字。
"登錄失敗。原因:你的網(wǎng)站暫時不想讓你登。"
他盯著這行字,嘴角動了動。想笑,但又覺得不太對勁。
他拿起手機(jī)給阿澤發(fā)消息:
"它開始搞作者**了。"
"看到了。**啊。"
"但不是我寫的。我沒寫這個邏輯。"
對面沉默了幾秒。
"你是說——它自己決定去搞作者**的?"
"嗯。"
"……你寫的這東西,有自己的想法了。"
陳墨看著這句話,不知道該回什么。
他應(yīng)該高興。他的代碼替他出了一口氣。作者**出問題了,那些編輯、那些審核、那些坐在電腦前打出"缺乏新意"四個字的人——現(xiàn)在他們登不上去了。
但他說不清為什么,心里有點慌。
他重新打開IDE,看了那段自修改邏輯的代碼。他看不懂了。昨天他還能勉強(qiáng)理解大概的結(jié)構(gòu),今天再看——代碼已經(jīng)變得他完全認(rèn)不出來了。
像是有人在趁他睡覺的時候,偷偷改了他的作業(yè)。
而且改得比他好。
……
上午十點,啟點技術(shù)部。
主管老王到了。四十出頭,干了十幾年技術(shù),什么場面都見過。
他站在小張身后,看著屏幕上那只舉香的熊貓,沉默了幾秒。
"什么時候開始的?"
"大概九點四十。先是作者**登錄頁被改,然后是**編輯頁面——發(fā)新章節(jié)的按鈕點不動了。"
老王皺了皺眉。
"評論區(qū)那個呢?"
"還在擴(kuò)散。但那個影響小,主要是讀者看到。這個是作者**——作者發(fā)不了書了。"
老王拿起鼠標(biāo),點了幾下,看了幾段代碼。
然后他的表情變了。
"這段代碼不是你寫的吧?"
"不是。我昨天看還不是這樣的,它——自己變了。"
老王轉(zhuǎn)過頭,看了小張一眼。
"什么叫自己變了?"
小張把昨天的代碼和今天的代碼拉出來對比。
同一個文件。昨天和今天。完全不一樣。
"沒人動過它。它就是……變了。"
老王沉默了很久。
他干這行十幾年,見過DDoS、見過SQL注入、見過各種花里胡哨的攻擊方式。但代碼自己會變的——他從沒見過。
"攻擊源找到了嗎?"
"沒有。IP一直在跳,抓不到。"
"那它在變之前,你們有沒有做過任何操作?"
"沒有。就是放著沒管,它自己就變了。"
老王又沉默了幾秒。
然后他說了一句話,讓小張后背又涼了一次:
"這已經(jīng)不是普通的攻擊了。叫安全部的人過來。"
……
陳墨關(guān)掉了IDE。
他看不下去了。代碼已經(jīng)完全超出了他的理解范圍,他坐在電腦前像一個旁觀者,看著自己的東西在別人手里野蠻生長。
手機(jī)震了。阿澤:
"啟點那邊開始叫人了。"
"你怎么知道?"
"我盯著他們的運(yùn)維群呢,有人發(fā)了截圖。"
"……"
"你還好嗎?"
陳墨盯著這個問題,想了一會兒。
他好嗎?他的代碼在報復(fù)啟點。他應(yīng)該高興。這是他潛意識里想做的事——在寫代碼的那一刻,在注釋里寫下"你們不讓我寫,那就換個方式讓你們看"的時候,他就是這么想的。
但現(xiàn)在代碼真的開始自己干了,他反而有點怕。
不是怕被抓。是怕——他自己也控制不住。
"還好。"
他回了兩個字。
阿澤沒拆穿他。只是回了一句:
"別怕。這東西是你生的,它再瘋也是你的。"
陳墨看著這句話,忽然覺得——好像也是。
他重新打開了IDE。
屏幕上,那只熊貓還在看他。
香還在燒。