乙個防止SQL注入的函式

2022-02-26 19:43:08 字數 546 閱讀 3417

在網上搜尋了半天,搜出來的**不是檢測到sql關鍵字提示使用者改就是直接替換sql關鍵字,而且有很多**還沒有注意到關鍵字大小寫問題。所以**多少有寫缺陷和不完美。

後來自己想到將所有**編碼成utf8或其他編碼,現實的時候再解碼,但是這樣的處理量十分大。可用程度不高。後來忽然想到網頁顯示的時候常常將空格用「 」代替。這樣一來,本來一條正常的sql語句「select ns_title from news」就變成「select ns_title from news」了,立馬想到替換sql語句中的分隔符不是比替換關鍵字有效得多嗎?而且對顯示沒有影響。所以有了一下的乙個簡單的函式:

private

string

sqlencode(

string

str)

//sql語句過濾

暫時發現sql語句的分隔符只有空格、\t、\n三個,如果發現更多,只要增加乙個replace語句就可用很好地工作了。當然用正規表示式替換更好,但是函式語句太簡單了,相信效率相差不是很大。

但是為什麼大夥都不用這個辦法呢?沒有想到嗎?還是別的什麼原因?呵呵,希望你知道告訴我!

(安全) 和 哪乙個防止SQL注入

可以有效的防止sql注入 會加上 之後寫進sql中 不能防止sql注入 因為會直接寫進sql語句中 使用 時 1 用 來傳遞引數時,sql在解析的時候會加上 當成字元段來解析。例如id 12 所有很大程度上防止sql注入。使用 時 1 用傳入數 據直接顯 示在生成 的sql 中,如上 面的語句 id...

原創 防止SQL注入的函式。

函式名 s request 輔助函式 r reader 作用 過濾非法字元,防止sql注入。引數 s str 被傳入的變數的名,型別 字串 返回值 過濾後的值。const c sqlstr count,user,user,count,1 1,and,2 2 需要過濾的字串序列,每個字串之間用 分隔 ...

防止SQL注入的6個要點

sql注入,就是通過把sql命令插入到web表單遞交或輸入網域名稱或頁面請求的查詢字串,最終達到欺騙伺服器執行惡意的sql命令。防止sql注入,我們可以從以下6個要點來進行 php的mysql擴充套件提供了mysqli real escape string 函式來轉義特殊的輸入字元。if get m...