PHP與SQL注入攻擊[一]
更新時間:2007年04月17日 00:00:00 作者:
Haohappy
http://blog.csdn.net/Haohappy2004
SQL注入攻擊是黑客攻擊網站最常用的手段。如果你的站點沒有使用嚴格的用戶輸入檢驗,那么非常容易遭到SQL注入攻擊。SQL注入攻擊通常通過給站點數據庫提交不良的數據或查詢語句來實現,很可能使數據庫中的紀錄遭到暴露,更改或被刪除。下面來談談SQL注入攻擊是如何實現的,又如何防范。
看這個例子:
// supposed input
$name = “ilia'; DELETE FROM users;”;
mysql_query(“SELECT * FROM users WHERE name='{$name}'”);
很明顯最后數據庫執(zhí)行的命令是:
SELECT * FROM users WHERE name=ilia; DELETE FROM users
這就給數據庫帶來了災難性的后果--所有記錄都被刪除了。
不過如果你使用的數據庫是MySQL,那么還好,mysql_query()函數不允許直接執(zhí)行這樣的操作(不能單行進行多個語句操作),所以你可以放心。如果你使用的數據庫是SQLite或者PostgreSQL,支持這樣的語句,那么就將面臨滅頂之災了。
http://blog.csdn.net/Haohappy2004
SQL注入攻擊是黑客攻擊網站最常用的手段。如果你的站點沒有使用嚴格的用戶輸入檢驗,那么非常容易遭到SQL注入攻擊。SQL注入攻擊通常通過給站點數據庫提交不良的數據或查詢語句來實現,很可能使數據庫中的紀錄遭到暴露,更改或被刪除。下面來談談SQL注入攻擊是如何實現的,又如何防范。
看這個例子:
// supposed input
$name = “ilia'; DELETE FROM users;”;
mysql_query(“SELECT * FROM users WHERE name='{$name}'”);
很明顯最后數據庫執(zhí)行的命令是:
SELECT * FROM users WHERE name=ilia; DELETE FROM users
這就給數據庫帶來了災難性的后果--所有記錄都被刪除了。
不過如果你使用的數據庫是MySQL,那么還好,mysql_query()函數不允許直接執(zhí)行這樣的操作(不能單行進行多個語句操作),所以你可以放心。如果你使用的數據庫是SQLite或者PostgreSQL,支持這樣的語句,那么就將面臨滅頂之災了。
相關文章
如何使用Linux的Crontab定時執(zhí)行PHP腳本的方法
我們的PHP程序有時候需要定時執(zhí)行,我們可以使用ignore_user_abort函數或是在頁面放置js讓用戶幫我們實現。但這兩種方法都不太可靠,不穩(wěn)定。我們可以借助Linux的Crontab工具來穩(wěn)定可靠地觸發(fā)PHP執(zhí)行任務2011-12-12

