天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

PHP代碼網(wǎng)站如何防范SQL注入漏洞攻擊建議分享

黑客通過SQL注入攻擊可以拿到網(wǎng)站數(shù)據(jù)庫的訪問權(quán)限,之后他們就可以拿到網(wǎng)站數(shù)據(jù)庫中所有的數(shù)據(jù),惡意的黑客可以通過SQL注入功能篡改數(shù)據(jù)庫中的數(shù)據(jù)甚至?xí)褦?shù)據(jù)庫中的數(shù)據(jù)毀壞掉。做為網(wǎng)絡(luò)開發(fā)者的你對這種黑客行為恨之入骨,當(dāng)然也有必要了解一下SQL注入這種功能方式的原理并學(xué)會(huì)如何通過代碼來保護(hù)自己的網(wǎng)站數(shù)據(jù)庫。今天就通過php和MySQL數(shù)據(jù)庫為例,分享一下我所了解的SQL注入攻擊和一些簡單的防范措施和一些如何避免SQL注入攻擊的建議。
什么是SQL注入(SQL Injection)?
簡單來說,SQL注入是使用代碼漏洞來獲取網(wǎng)站或應(yīng)用程序后臺(tái)的SQL數(shù)據(jù)庫中的數(shù)據(jù),進(jìn)而可以取得數(shù)據(jù)庫的訪問權(quán)限。比如,黑客可以利用網(wǎng)站代碼的漏洞,使用SQL注入的方式取得一個(gè)公司網(wǎng)站后臺(tái)數(shù)據(jù)庫里所有的數(shù)據(jù)信息。拿到數(shù)據(jù)庫管理員登錄用戶名和密碼后黑客可以自由修改數(shù)據(jù)庫中的內(nèi)容甚至刪除該數(shù)據(jù)庫。SQL注入也可以用來檢驗(yàn)一個(gè)網(wǎng)站或應(yīng)用的安全性。SQL注入的方式有很多種,但本文將只討論最基本的原理,我們將以php和MySQL為例。本文的例子很簡單,如果你使用其它語言理解起來也不會(huì)有難度,重點(diǎn)關(guān)注SQL命令即可。
一個(gè)簡單的SQL注入攻擊案例
假如我們有一個(gè)公司網(wǎng)站,在網(wǎng)站的后臺(tái)數(shù)據(jù)庫中保存了所有的客戶數(shù)據(jù)等重要信息。假如網(wǎng)站登錄頁面的代碼中有這樣一條命令來讀取用戶信息。
復(fù)制代碼 代碼如下:
<?
$q = "SELECT `id` FROM `users` WHERE `username`= ' " .$_GET['username']. " ' AND `password`= ' " .$_GET['password']. " ' ";
?>

現(xiàn)在有一個(gè)黑客想攻擊你的數(shù)據(jù)庫,他會(huì)嘗試在此登錄頁面的用戶名的輸入框中輸入以下代碼:
' ; SHOW TABLES;
點(diǎn)擊登陸鍵,這個(gè)頁面就會(huì)顯示出數(shù)據(jù)庫中的所有表。如果他現(xiàn)在使用下面這行命令:
'; DROP TABLE [table name];
這樣他就把一張表刪除了!
當(dāng)然,這只是一個(gè)很簡單的例子,實(shí)際的SQL注入方法比這個(gè)要復(fù)雜得多,黑客也愿意花大量的時(shí)間來不斷嘗試來攻擊你的代碼。有一些程序軟件也可以自動(dòng)地來不斷嘗試SQL注入攻擊。了解了SQL注入的攻擊原理后,我們來看一下如何防范SQL注入攻擊。
防范SQL注入 - 使用mysql_real_escape_string()函數(shù)
在數(shù)據(jù)庫操作的代碼中用這個(gè)函數(shù)mysql_real_escape_string()可以將代碼中特殊字符過濾掉,如引號(hào)等。如下例:
復(fù)制代碼 代碼如下:
<?
$q = "SELECT `id` FROM `users` WHERE `username`= ' " .mysql_real_escape_string( $_GET['username'] ). " ' AND `password`= ' " .mysql_real_escape_string( $_GET['password'] ). " ' ";
?>

防范SQL注入 - 使用mysql_query()函數(shù)
mysql_query()的特別是它將只執(zhí)行SQL代碼的第一條,而后面的并不會(huì)執(zhí)行。回想在最前面的例子中,黑客通過代碼來例后臺(tái)執(zhí)行了多條SQL命令,顯示出了所有表的名稱。所以mysql_query()函數(shù)可以取到進(jìn)一步保護(hù)的作用。我們進(jìn)一步演化剛才的代碼就得到了下面的代碼:
復(fù)制代碼 代碼如下:
<?
//connection
$database = mysql_connect("localhost", "username","password");
//db selection
mysql_select_db("database", $database);
$q = mysql_query("SELECT `id` FROM `users` WHERE `username`= ' " .mysql_real_escape_string( $_GET['username'] ). " ' AND `password`= ' " .mysql_real_escape_string( $_GET['password'] ). " ' ", $database);
?>

除此之外,我們還可以在php代碼中判斷輸入值的長度,或者專門用一個(gè)函數(shù)來檢查輸入的值。所以在接受用戶輸入值的地方一定要做好輸入內(nèi)容的過濾和檢查。當(dāng)然學(xué)習(xí)和了解最新的SQL注入方式也非常重要,這樣才能做到有目的的防范。如果使用的是平臺(tái)式的網(wǎng)站系統(tǒng)如Wordpress,要注意及時(shí)打上官方的補(bǔ)丁或升級(jí)到新的版本。如果有講得不對的地方或不理解的請?jiān)谠u(píng)論區(qū)留言。

php技術(shù)PHP代碼網(wǎng)站如何防范SQL注入漏洞攻擊建議分享,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 亲胸揉胸膜下刺激视频在线观看 | 真实的强视频免费网站 | 秋霞电影网午夜鲁丝片无码 | 亚洲精品在线看 | 校花在公车上被内射好舒服 | AV天堂AV亚洲啪啪久久无码 | 717影院理论午夜伦不卡久久 | 忘忧草研究所 麻豆 | 国偷自产视频一区二区久 | 亚洲AV无码A片在线观看蜜桃 | 国产色婷婷精品人妻蜜桃成熟时 | 十七岁日本免费完整版BD | 亚洲激情网站 | 99精品国产自在自线 | 青青伊人精品 | 91免费精品国自产拍在线可以看 | 成人精品综合免费视频 | 暖暖免费观看日本在线视频 | 亚洲一区二区女搞男 | 免费人成在线观看视频不卡 | 婷婷综合久久狠狠色 | 乡村教师电影完整版在线观看 | 9420高清完整版在线电影免费观看 | 亚洲精品嫩草AV在线观看 | 国产亚洲欧美日韩综合综合二区 | 国产-第1页-浮力影院 | 俄罗斯女人Z0Z0极品 | 在线播放免费人成视频 | 麻豆啊传媒app黄版破解免费 | 国产呦精品一区二区三区下载 | 免费A级毛片无码鲁大师 | 第一次破女初国产美女 | 久久久精品久久 | 少妇精品久久久一区二区三区 | 姐姐不~不可以动漫在线观看 | 2021全国精品卡一卡二 | 乳色吐息未增删樱花ED在线观看 | 菠萝菠萝蜜免费播放高清 | 亚洲国产黄色 | 24小时日本高清免费看 | 国产在线观看免费观看不卡 |