2012-02-22 41 views
0

我目前有這種類型的PDO語句將INSERT變量插入到下面的數組中。我被告知使用PDO語句將是在PHP中進行插入的最安全的方式。帶POST的PDO插入

$qry = $db->prepare('INSERT INTO twocents (path, name, message) VALUES (?, ?, ?)'); 
$qry->execute(array($path, $name, $message)); 

現在,將設置$path$name,並$message從提交的表單在POST值還是爲安全?我不確定如果這些變量不是由任何設置的話,你會怎麼做INSERT。

謝謝!

回答

1

是的,這在SQL注入預防方面是完全安全的。

但是,您可能仍然需要轉義輸出數據,例如,如果您收到的$message<script language="Javascript" src="http://evil.site.com/evil.script.js"></script>,那麼您可能不希望將其輸出爲<p><?=$message?></p>。某些模板引擎(例如XSLT)通過單獨處理HTML(XML)代碼和數據來消除此問題,因此<p><xsl:value-of select="message"/></p>,message被視爲<p/>節點文本值,並在將處理的XML寫入字符串時自動轉義。

0

在某些情況下,它可能會很好。但是,在將$ _POST數據插入準備語句之前,您可能需要對$ _POST數據執行某種類型的sanitization。否則,你可能會在數據庫中得到一些粗糙的數據。無論如何,準備好的聲明都有幫助。

0

是的。它是安全的(僅從sql注入)。