我只是讓我的一位朋友看看我用來從我的數據庫獲取數據的一些代碼,他告訴我這是非常不安全的,SQL注入是嚴重的事情。爲什麼這個SQL代碼不安全?
這是我現在使用的代碼:
$id = $_GET['id'];
$result = mysql_query("SELECT * FROM news WHERE id = $id") or die("err0r");
他告訴我說,解決的辦法就是改變代碼爲:(根據我的朋友),使
$id = intval($_GET['id']);
$result = mysql_query("SELECT * FROM news WHERE id = $id") or die("err0r");
我的代碼以某種方式任何能夠編輯我的數據庫中的內容的用戶:
http://mydomain.com/?p=news&id=38;DROP TABLE tablename;
有人可以解釋他的確切含義嗎?
謝謝你,有一個愉快的一天
看看這裏:http://stackoverflow.com/questions/332365/xkcd-sql-injection-please-explain – Swati 2011-05-12 15:54:08