如何防止 SQL 注入?

發布 科技 2024-05-28
10個回答
  1. 匿名使用者2024-02-11

    在動態構造 SQL 查詢的情況下,請替換所有 SQL 特殊字元。

    使用儲存過程執行任何查詢。 SQL引數的傳遞方式將防止攻擊者使用單引號和連字元進行攻擊。 此外,資料庫許可權可以限制為僅特定的儲存過程,因此很難使注入攻擊變得困難。

    限制表單或查詢字串輸入的長度或對其進行加密。 如果使用者的登入名最多只有 10 個字元,則不接受表單中輸入的超過 10 個字元,這將大大增加攻擊者在 SQL 命令中插入有害 ** 的難度。

    檢查使用者輸入的合法性,並確保輸入僅包含合法資料。 資料檢查應在客戶端和伺服器端執行 - 執行伺服器端驗證以補償客戶端驗證機制的弱安全性。

    加密和儲存使用者登入名、密碼和其他資料。

    6)限制用於執行查詢的資料庫帳戶的許可權。使用不同的使用者帳戶執行查詢、插入、更新、刪除操作。 通過隔離不同帳戶可以執行的操作,它可以防止使用 SELECT 命令來執行插入、更新或刪除命令。

  2. 匿名使用者2024-02-10

    使用引數。 不要使用烤串。

  3. 匿名使用者2024-02-09

    對於儲存過程,傳遞引數沒有問題。

  4. 匿名使用者2024-02-08

    通常,使用儲存過程是可以的。

  5. 匿名使用者2024-02-07

    找乙個專業的團隊或公司為你解決問題。

  6. 匿名使用者2024-02-06

    所有 GET 請求以及 POST 請求都會過濾非法字元的輸入。 '分號篩選 -- 篩選 %20 特殊字元篩選、單引號篩選、百分比符號、<>和篩選、製表符鍵值和其他安全篩選。 如果對**了解不多,建議找專業的**安防公司來處理,國內的SINE安防、綠盟科技、啟明星辰,都是比較不錯的安防公司。

  7. 匿名使用者2024-02-05

    1. 篩選出一些常見的資料庫操作關鍵字:select、insert、update、delete、and、*等。

    或者你可以使用系統函式:addslashes(需要過濾的內容)。

    2. 在 PHP 配置檔案中。

    register_globals=off;設定為“關閉”操作將註冊全域性變數 off。

    例如,接收帖子窗體的值為 $ post['user'], if register globals=on;直接使用 $user 來接收表單的值。

    3. 編寫 SQL 語句時盡量不要省略小引號(Tab 鍵上方的引號)和單引號。

    4、提高資料庫命名技巧,根據程式特點命名一些重要字段,取那些不容易猜到的字段。

    5. 封裝常用方法,避免SQL語句直接洩露。

    6. 開啟PHP安全模式。

    safe_mode=on;

    7. 開啟 Magic Quotes GPC 以防止 SQL 注入。

    magic_quotes_gpc=off;預設關閉,開啟時會自動轉換使用者提交的SQL語句查詢'轉到',這對防止SQL注入有顯著作用。

    依此類推:魔術報價 gpc=on;

    8. 控制錯誤訊息。

    禁用錯誤訊息並將錯誤訊息寫入系統日誌。

    9. 使用 MySQLI 或 PDO 預處理。

  8. 匿名使用者2024-02-04

    輸入引數嚴格限制格式、大小、合理性和特殊字元。

  9. 匿名使用者2024-02-03

    SQL注入在SQL中並不是乙個無法解決的問題,這種攻擊方式的存在也不能完全歸咎於SQL語言。 首先,我在其他答案中提出了乙個觀點:沒有編譯,沒有注入。

    SQL注入的原因與堆疊溢位、XSS等許多其他攻擊方式類似,即未經檢查或檢查不充分的使用者輸入資料被意外執行。 對於SQL注入,使用者提交的資料由資料庫系統編譯,開發者沒有預料到。 換句話說,SQL注入是使用者輸入的資料,在拼接SQL語句的過程中,它超越了資料本身,成為SQL語句查詢邏輯的一部分,然後以這種方式拼接的SQL語句被資料庫執行,從而產生開發者意想不到的動作。

    因此,防止上述型別攻擊的根本手段是避免資料被執行,並始終區分資料與資料之間的界限。 就SQL注入而言,執行的惡意**是由資料庫的SQL解釋引擎編譯的,因此只要避免使用者輸入的資料被資料庫系統編譯即可。

    現在的資料庫系統提供了SQL語句的預編譯(準備)和查詢引數繫結的功能,並在SQL語句中放置佔位符'?',然後將帶有佔位符的 SQL 語句傳遞給資料庫編譯器,然後才在執行時將使用者輸入的資料作為執行引數傳遞給使用者。 這個操作不僅讓SQL語句在寫入時不再需要拼接,而且看起來更直接,使用者輸入的資料沒有機會被傳送到資料庫的SQL直譯器進行編譯和執行,也不會變得**越權。

    至於為什麼不使用這種引數化查詢方式作為預設方式,我認為除了相容舊系統之外,直接使用SQL確實方便,並且有一定的使用場合。

    再補充一點,從**的角度來看,拼接SQL語句的做法也是不合適的。

  10. 匿名使用者2024-02-02

    SQL注入:利用現有應用程式將(惡意)SQL命令注入後端資料庫引擎執行的能力,這是SQL注入的標準定義。

相關回答
15個回答2024-05-28

10公釐口徑的MP5衝鋒槍(簡稱MP5 10)是HK公司根據美國聯邦調查局提出的要求,於1991年研製生產的。 FBI裝備的手槍主要使用10公釐自動子彈,他們覺得現有的發射9公釐子彈的衝鋒槍威力不夠大,為了後勤和戰鬥力,FBI提議為其HRT(人質救援隊)和其他特種部隊配備10公釐自動口徑衝鋒槍。 因此,HK公司在原有的9公釐口徑MP5的基礎上進行了改進,並開發了MP5 10衝鋒槍,可以發射10公釐自動子彈。 >>>More

9個回答2024-05-28

這取決於圖表是什麼。

我玩澄海的。 >>>More

7個回答2024-05-28

不是你在外面被打了,或者你的家庭環境太壓抑,溝通太少,不活躍,你想治好心臟病,這都不是這裡能說的,畢竟家庭、父母是孩子的港灣,你的孩子現在感覺像是海中的一座孤島。 對於這樣乙個孤獨的孩子,如果你不主動接近她,她真的找不到港灣的方向,想開啟孩子的心門,父母找到自己的理由,我真誠地希望你幸福快樂!

9個回答2024-05-28

你姐夫有點耍花招。

事實上,離婚必須經過法律程式。 你要找到你姐夫,先把他帶回來,然後去居委會或村委會的人民調解委員會進行調解。 >>>More

25個回答2024-05-28

我想如果你真的喜歡她,你會把她給你的任何反思當成一種動力,有些女生比較矜持,也許她喜歡你說你討厭,也不是不可能! 所以! 堅持,堅持就是勝利,用你的真誠打動她的心,也許你會是那個時候世界上最幸福、最幸福的人! >>>More