掃二維碼與項(xiàng)目經(jīng)理溝通
我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流
近期在開發(fā)一個(gè)模塊過程中,開發(fā)了一部分代碼就上傳到服務(wù)器上面,而且是用臨時(shí)域名可訪問的,因?yàn)樯厦鏇]有實(shí)質(zhì)性內(nèi)容數(shù)據(jù),而訪問者實(shí)際上就是微構(gòu)網(wǎng)絡(luò)開發(fā)組成員自己;當(dāng)然除此之外就是搜索引擎等網(wǎng)絡(luò)爬蟲了。
因此這個(gè)模塊是在開發(fā)中的,很多地方?jīng)]有完善。但就這樣就出現(xiàn)了一個(gè)看起來非常奇葩的問題:在開發(fā)環(huán)境中這個(gè)模塊的數(shù)據(jù)沒任何問題,而在服務(wù)器環(huán)境中其中的某個(gè)功能的一張主表的數(shù)據(jù)總是莫名其妙的就沒了。我們意識(shí)到就是哪個(gè)地方執(zhí)行了刪除語句,而關(guān)于這個(gè)表記錄的刪除唯一“合法”執(zhí)行的位置就是內(nèi)容中的刪除按鈕,而且這個(gè)按鈕點(diǎn)擊并暫時(shí)沒放上權(quán)限控制(開發(fā)完成后必須加上權(quán)限,這是毫無疑問的)。為了驗(yàn)證我們的思路是否正確,我們對(duì)服務(wù)器開啟了mysql語句執(zhí)行記錄日志。
結(jié)果我們通過日志中執(zhí)行這個(gè)表記錄刪除語句前后執(zhí)行的語句對(duì)比,發(fā)現(xiàn)還真是這個(gè)位置的問題。首先這個(gè)位置關(guān)于刪除的基本功能做好了,只是沒進(jìn)一步完善,也就是一個(gè)毛坯;任何人都可以進(jìn)行刪除。但問題是誰去刪除呢?我們自己并不可能去刪除,然后我們竟然sql注入都考慮到的,但奇怪的是如果真被注入了,我相信攻擊者也不會(huì)這么無聊,不但只對(duì)一個(gè)非敏感表操作,而且就是是敏感的表,里面的臨時(shí)數(shù)據(jù)并沒有什么卵用。
后面我突然知道了想到了,開發(fā)環(huán)境的軟件組件及代碼跟服務(wù)器環(huán)境是一樣的,唯獨(dú)不同的就是服務(wù)器上還有網(wǎng)絡(luò)爬蟲。為了驗(yàn)證是否真的是網(wǎng)絡(luò)爬蟲“作案”的,我們把網(wǎng)絡(luò)爬蟲做一個(gè)判斷,結(jié)果隔了很久發(fā)現(xiàn)確實(shí)沒有被刪除。也就是說這個(gè)數(shù)據(jù)就是被搜索引擎的爬蟲給刪除的,當(dāng)然正式運(yùn)營的時(shí)候因?yàn)橥晟频臋?quán)限控制除了權(quán)限內(nèi)的角色外其他的都沒有權(quán)限刪除。
其實(shí)吧,想一下也確實(shí),雖然覺得有趣,但事實(shí)上就是這樣的。因?yàn)榫W(wǎng)絡(luò)爬蟲其實(shí)也相當(dāng)于我們的一個(gè)訪客,比如我們的網(wǎng)站為了有利于SEO做成樹狀結(jié)構(gòu),它訪問網(wǎng)站的首頁后,需要進(jìn)一步訪問二級(jí)欄目或者內(nèi)頁,那么就是先抓取首頁的網(wǎng)站內(nèi)鏈,然后訪問到二級(jí)欄目或者內(nèi)頁。而在這里,假設(shè)爬蟲已經(jīng)到了內(nèi)頁,然后會(huì)訪問內(nèi)頁的內(nèi)鏈,而刪除按鈕對(duì)應(yīng)的url其實(shí)也可以理解為一個(gè)頁面,在有權(quán)限的前提下,只要訪問了這個(gè)url就相當(dāng)于執(zhí)行了刪除操作。原因就是這樣!
我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流