2013-07-21 138 views
0

我不熟悉SQL注入,我想知道在我的腳本中是否有任何無用功能,如果有請指出並給我一些技巧來解決它。有沒有辦法在我的代碼中注入SQL?

<?php 
include("config.php"); 
?> 

<?php 
$desc = $_POST['desc']; 
$desc = mysql_real_escape_string($desc); 
$author = $_POST['author']; 
$date = date("d/M/Y"); 
mysql_query("INSERT INTO `changelog`(`author`, `date`, `description`) VALUES ('{$author}','{$date}','$desc')") or die(mysql_error()); 
include("success.php"); 
?> 
+0

-1。 StackOverflow既不用於判斷某人的代碼,也不用於查找人員代碼中的錯誤或安全問題。我們可以回答問題。 – Hidde

+1

是的,[**不要在新代碼中使用'mysql_ *'函數**](http://bit.ly/phpmsql)。他們不再被維護[並且被正式棄用](http://j.mp/XqV7Lp)。看到[**紅框**](http://j.mp/Te9zIL)?學習[*準備的語句*](http://j.mp/T9hLWi),並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [這篇文章](http://j.mp/QEx8IB)將幫助你決定哪個。如果你選擇PDO,[這裏是一個很好的教程](http://j.mp/PoWehJ)。 –

回答

1

是的。您完全依賴mysql_real_escape_string已被棄用。此外,你應該根據你所期望的一系列輸入建立一些你自己的邏輯測試。您可能想要使用RegExp或其他一些修剪功能,但不要僅依靠mysql_real_escape_string

相關問題