2016-11-06 89 views
1

我正在構建一個像gumtree和OLX這樣的網站,我的一個朋友告訴我,由於它使用查詢字符串來執行大多數操作,所以它很容易被黑客入侵。使用查詢字符串有什麼危險?

例如,當我搜索了車我的網址看起來像http://www.kasitree.co.nf/?sv=car&township=&catagory=Cars&province=Western+Cape

凡作爲加姆特里當我搜索了汽車的URL看起來像 https://www.gumtree.co.za/s-automotive-vehicles/stellenbosch/car/v1c5l3100295q0p1

他沒有告訴我的危險使用查詢字符串,他只是告訴我,查詢字符串使您的網站容易受到黑客的攻擊。

任何替代使用查詢字符串?

+3

false。如果您將這些參數直接unsanitized傳遞給SQL查詢,但是使用POST方法或任何其他方法也容易受到攻擊,那麼可能會使這種情況更容易受到攻擊。 –

+0

嗨,傑夫,感謝您的評論:)我現在對我的網站感到有點積極 –

+0

只要您使用參數化查詢,使用查詢字符串不是不安全的。另一方面,如果你直接在你的查詢中使用$ _GET變量,那麼你將面臨一個受到傷害的世界。 – junkfoodjunkie

回答

1

查詢字符串不要讓你的網站容易受到黑客的攻擊。查詢字符串只是醜陋,應該謹慎使用,當它們被使用時,你應該努力保持它們整齊有序。

很多現代的web框架使查詢字符串通過在URL中嵌入的查詢參數不太難看。那就是/cars/fiat/30132類似於傳統CGI說法中的/cars?vendor=fiat&id=30132

沒有什麼更安全的或使用的查詢字符串時不太安全。當然,在URL中公開參數會引起修補,但是任何一個「黑客」的人都會知道URL的其他組成部分也很容易被調整,任何POST表單都可以通過使用內置的開發工具在任何網頁瀏覽器。

在Web開發中的基本規則是由用戶提供信任什麼。任何事情都可以並將被操縱,所以你必須必須做任何傳入的參數或數據自己的驗證,你必須正確地轉義這些值插入其他情況下,如HTML,SQL,甚至另一個URL。

如果您希望您的網站是安全的,你必須使用HTTPS,你需要非常,非常可疑的所有用戶數據。你的朋友在這裏瘋狂地誤導了你。

+0

謝謝你回答....一個問題;我如何去查詢字符串嵌入到URL本身,我想堅持現代的開發方法。你是對的,我注意到,大多數網站使用這種形式/汽車/菲亞特/ 30132的URL,在/ cars?vendor = fiat&id = 30132的情況下,我會有像$供應商= $ _GET ['vendor'] ;從URL獲取供應商,現在如何在使用/ cars/fiat/30132時獲取供應商? –

+0

任何[開發框架](http://codegeekz.com/best-php-frameworks-for-developers/)與路由引擎都可以做到這一點。 [Laravel](http://laravel.com/)就是一個很好的例子,這裏是[路由系統的文檔](https://laravel.com/docs/5.3/routing)。 – tadman

相關問題