溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

網站防止sql注入的方法

發布時間:2021-03-04 14:06:50 來源:億速云 閱讀:253 作者:小新 欄目:開發技術

這篇文章給大家分享的是有關網站防止sql注入的方法的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

  防sql注入,是一種網站防止黑客攻擊的方式。網站要怎么防范最最常見SQL注入式攻擊呢,我們先從SQL注入式攻擊的原理來說起。

  1.沒有正確過濾特殊字符不能防止sql注入

  例如單引號和分號如果你的sql語句是這樣,又沒過濾“’”單引號:"SELECT*FROMtablesWHEREparam='"+RequestString+"';"攻擊者將用戶名變量(即RequestString)設置為:a'or't'='t

  此時原始語句發生了變化:SELECT*FROMtablesWHEREparam='a'OR't'='t';

  如果這種代碼被用于一個認證過程,那么這個例子就能夠強迫選擇一個合法的用戶名,因為賦值't'='t永遠是正確的。這種方式是跳過身份認證的最簡單手段

  再配合“;”分號可以進行更多的SQL注入攻擊";"分號用來執行多個語句。下面語句中的RequestString的值將會導致刪除“tables”表,又可以從“dataTables”表中選擇所有的數據(實際上就是透露了每一個用戶的信息)。a';DROPTABLEtables;SELECT*FROMdataTablesWHEREparamLIKE'%

  這就將最終的SQL語句變成下面這個樣子:SELECT*FROMtablesWHEREparam='a';DROPTABLEtables;SELECT*FROMdataTablesWHEREparamLIKE'%';

  通過這種原理可以執行很多很多攻擊了。

  2.不正確處理變量類型不能防止sql注入

  如果一個用戶提供的字段并非一個強類型,或者沒有實施類型強制,就會發生這種形式的攻擊。當在一個SQL語句中使用一個數字字段時,如果程序員沒有檢查用戶輸入的合法性(是否為數字型)就會發生這種攻擊。

  例如:“SELECT*FROMtablesWHEREid="+RequestID+";"

  從這個語句可以看出,作者希望RequestID是一個數字。不過,如果終端用戶選擇一個字符串,就繞過了對轉義字符的需要。例如,將RequestID設置為1;DROPTABLEtables就不需要上面說的“‘”單引號了,照樣可以進行攻擊:會將“tables”表從數據庫中刪除,SQL語句變成:SELECT*FROMDATAWHEREid=1;DROPTABLEusers。

感謝各位的閱讀!關于“網站防止sql注入的方法”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女