更新時(shí)間:2019-12-05 16:25:35 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽2644次
如何有效預(yù)防SQL注入?通過把SQL命令插入到Web表單提交或輸入域名或頁(yè)面請(qǐng)求的查詢字符串,最終達(dá)到欺騙服務(wù)器執(zhí)行惡意的SQL命令。對(duì)于很多網(wǎng)站都有用戶提交表單的端口,提交的數(shù)據(jù)插入MySQL數(shù)據(jù)庫(kù)中,就有可能發(fā)生SQL注入安全問題,那么,如何防止SQL注入呢?
如何有效預(yù)防SQL注入?
針對(duì)SQL注入安全問題的預(yù)防,需時(shí)刻認(rèn)定用戶輸入的數(shù)據(jù)是不安全的,并對(duì)用戶輸入的數(shù)據(jù)進(jìn)行過濾處理,對(duì)不同的字段進(jìn)行條件限制,符合條件的可以寫入數(shù)據(jù)庫(kù),不符合條件的進(jìn)行數(shù)據(jù)過濾處理!
防止SQL注入,需要注意以下幾點(diǎn):
1. 永遠(yuǎn)不要信任用戶的輸入。對(duì)用戶的輸入進(jìn)行校驗(yàn),可以通過正則表達(dá)式,或限制長(zhǎng)度;對(duì)單引號(hào)和 雙"-"進(jìn)行轉(zhuǎn)換等。
2. 永遠(yuǎn)不要使用動(dòng)態(tài)拼裝sql,可以使用參數(shù)化的sql或者直接使用存儲(chǔ)過程進(jìn)行數(shù)據(jù)查詢存取。
3. 永遠(yuǎn)不要使用管理員權(quán)限的數(shù)據(jù)庫(kù)連接,為每個(gè)應(yīng)用使用單獨(dú)的權(quán)限有限的數(shù)據(jù)庫(kù)連接。
4. 不要把機(jī)密信息直接存放,加密或者h(yuǎn)ash掉密碼和敏感的信息。
5. 應(yīng)用的異常信息應(yīng)該給出盡可能少的提示,最好使用自定義的錯(cuò)誤信息對(duì)原始錯(cuò)誤信息進(jìn)行包裝。
6. sql注入的檢測(cè)方法一般采取輔助軟件或網(wǎng)站平臺(tái)來(lái)檢測(cè),軟件一般采用sql注入檢測(cè)工具jsky,網(wǎng)站平臺(tái)就有億思網(wǎng)站安全平臺(tái)檢測(cè)工具。MDCSOFT SCAN等。采用MDCSOFT-IPS可以有效的防御SQL注入,XSS攻擊等。
防止SQL注入之轉(zhuǎn)義特殊輸入字符
在腳本語(yǔ)言中,提供了可以對(duì)用戶輸入的數(shù)據(jù)進(jìn)行轉(zhuǎn)義的函數(shù),如PHP的MySQL擴(kuò)展提供了mysqli_real_escape_string()函數(shù)來(lái)轉(zhuǎn)義特殊的輸入字符,從而來(lái)防止SQL注入。
if (get_magic_quotes_gpc())
{
$name = stripslashes($name);
}
$name = mysqli_real_escape_string($conn, $name);
mysqli_query($conn, "SELECT * FROM users WHERE name='{$name}'");
以上就是動(dòng)力節(jié)點(diǎn)Java培訓(xùn)機(jī)構(gòu)小編介紹的“Java基礎(chǔ)教程培訓(xùn):如何有效預(yù)防SQL注入?”的內(nèi)容,希望對(duì)大家有幫助,如有疑問,請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。
視頻相關(guān)
全網(wǎng)最新全套Java視頻教程下載:http://www.ilovecolors.com.cn/video.html
Java學(xué)習(xí)資料下載:http://www.ilovecolors.com.cn/tutorial_java_se/
相關(guān)閱讀
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)
初級(jí) 202925
初級(jí) 203221
初級(jí) 202629
初級(jí) 203743