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