PHP與SQL注入攻擊[一]
更新時間:2007年04月17日 00:00:00 作者:
Haohappy
http://blog.csdn.net/Haohappy2004
SQL注入攻擊是黑客攻擊網(wǎng)站最常用的手段。如果你的站點沒有使用嚴格的用戶輸入檢驗,那么非常容易遭到SQL注入攻擊。SQL注入攻擊通常通過給站點數(shù)據(jù)庫提交不良的數(shù)據(jù)或查詢語句來實現(xiàn),很可能使數(shù)據(jù)庫中的紀錄遭到暴露,更改或被刪除。下面來談談SQL注入攻擊是如何實現(xiàn)的,又如何防范。
看這個例子:
// supposed input
$name = “ilia'; DELETE FROM users;”;
mysql_query(“SELECT * FROM users WHERE name='{$name}'”);
很明顯最后數(shù)據(jù)庫執(zhí)行的命令是:
SELECT * FROM users WHERE name=ilia; DELETE FROM users
這就給數(shù)據(jù)庫帶來了災難性的后果--所有記錄都被刪除了。
不過如果你使用的數(shù)據(jù)庫是MySQL,那么還好,mysql_query()函數(shù)不允許直接執(zhí)行這樣的操作(不能單行進行多個語句操作),所以你可以放心。如果你使用的數(shù)據(jù)庫是SQLite或者PostgreSQL,支持這樣的語句,那么就將面臨滅頂之災了。
http://blog.csdn.net/Haohappy2004
SQL注入攻擊是黑客攻擊網(wǎng)站最常用的手段。如果你的站點沒有使用嚴格的用戶輸入檢驗,那么非常容易遭到SQL注入攻擊。SQL注入攻擊通常通過給站點數(shù)據(jù)庫提交不良的數(shù)據(jù)或查詢語句來實現(xiàn),很可能使數(shù)據(jù)庫中的紀錄遭到暴露,更改或被刪除。下面來談談SQL注入攻擊是如何實現(xiàn)的,又如何防范。
看這個例子:
// supposed input
$name = “ilia'; DELETE FROM users;”;
mysql_query(“SELECT * FROM users WHERE name='{$name}'”);
很明顯最后數(shù)據(jù)庫執(zhí)行的命令是:
SELECT * FROM users WHERE name=ilia; DELETE FROM users
這就給數(shù)據(jù)庫帶來了災難性的后果--所有記錄都被刪除了。
不過如果你使用的數(shù)據(jù)庫是MySQL,那么還好,mysql_query()函數(shù)不允許直接執(zhí)行這樣的操作(不能單行進行多個語句操作),所以你可以放心。如果你使用的數(shù)據(jù)庫是SQLite或者PostgreSQL,支持這樣的語句,那么就將面臨滅頂之災了。
相關文章
PHP 7.1中利用OpenSSL代替Mcrypt加解密的方法詳解
最近在開發(fā)微信公眾號功能的時候發(fā)現(xiàn)在PHP 7.1中Mcrypt已經(jīng)被棄用了,無奈只能找對應的解決方法來替代,所以這篇文章主要給大家介紹了關于在PHP 7.1中利用OpenSSL代替Mcrypt加解密的相關資料,需要的朋友可以參考下。2017-11-11