我有一個簡單的評論系統,用戶輸入文本到textarea
,一個PHP腳本運行,檢查用戶是否登錄,如果按下提交併且所有內容都被填寫 - 它會繼續插入數據。我的問題是,我需要什麼來逃避/修剪/剝離?現在我的查詢看起來是這樣的:從textarea插入數據時,查詢中需要轉義什麼?
$sql = $con->prepare("INSERT INTO Comments (user, comment, pageid, time) VALUES (:user, :comment, :pageid, NOW())");
$sql->bindValue(":user", $user, PDO::PARAM_STR);
$sql->bindValue(":comment", $comment, PDO::PARAM_STR);
$sql->bindValue(":pageid", $pageid, PDO::PARAM_INT);
$sql->execute();
變量使用POST
方法來自於形式。這是安全的SQL注入或我需要做一些額外的修剪和轉義之前插入數據?
是的,這足以防止SQL注入。您可能對[The Great Escapism(或:您需要知道如何處理文本中的文本)]感興趣](http://kunststube.net/escapism/)。 – deceze 2013-02-18 12:43:20
閱讀:http://stackoverflow.com/questions/60174/how-to-prevent-sql-injection-in-php – Daniel 2013-02-18 12:46:11
這個公式實際上有兩個部分。你的問題涉及第一部分,存儲數據,你會得到很好的信息。第二部分涉及檢索並顯示它。如果有人在textarea中寫入一些html或js,並將其顯示在網頁上,它將會執行,除非您做了某些事情來防止。如果php有與ColdFusion的htmleditformat()相同的東西,請使用它。 – 2013-02-18 12:50:08