我正在這個時候發表論壇。在將數據發送到mySQL之前,我如何清理數據?
我想在將數據發送到MySQL數據庫之前清理我的輸入數據(即來自用戶的帖子)。
我已經一直在尋找一些功能來做到這一點,但我不確定我是否已經使用了足夠的功能,以及它們是否足夠安全。歡迎任何建議。
這裏是我的代碼:
$message=$_POST['answer'];
$message=nl2br($message); //adds breaks to my text
$message=stripslashes($message); //removes backslahes (needed for links and images)
$message=strip_tags($message, '<p><a><b><i><strong><em><code><sub><sup><img>'); //people can only use tags inside 2nd param
$message = mysql_real_escape_string($message); //removes mysql statements i think (not sure)
編輯:請告訴我,如果我要補充一些標籤來用strip_tags功能。也許我已經忘記了一些。
[當數據庫插入(http://stackoverflow.com/questions/60174/best-way-to-prevent- sql-injection-in-php)以及[在頁面上顯示數據](http://php.net/manual/en/function.htmlspecialchars.php)。 – PeeHaa
仍然允許XSS的屬性如'
' –
Gumbo
由於你的評論說你不確定'mysql_real_escape_string()'做了什麼,你應該[閱讀它的文檔](http://php.net/manual/en/function。 mysql-real-escape-string.php),當你在這裏時,[閱讀關於SQL注入](http://en.wikipedia.org/wiki/Sql_injection)來理解爲什麼這是如此重要。 –