我發現一個similar question,但它並沒有真正給我我正在尋找的答案。 This tutorial解釋了WordPress使用的最重要的衛生功能。插入到自定義表格時,我仍然應該轉義數據嗎?
我正在使用PDO將表單數據存儲到自定義表中。很多這些數據包含名稱,如l'this
和Cotélac & Blancé
。
如果我把電子郵件和url字段放在一邊,是否足以使用esc_attr
和esc_html
來激發SQL注入和跨站點腳本?
我應該在數據保存到數據庫之前使用它嗎?或者在我將它放到屏幕前?
//From Wordpress
esc_html -> Escaping for HTML blocks
esc_attr -> Encodes the <, >, &, " and '
這是我用一個典型的查詢:
$sql = " SELECT name
FROM name
WHERE user_name = :user_name
AND fk_ID = :some_id ";
$stmt = $this->db->prepare($sql);
$stmt->bindParam(':user_name', $name, PDO::PARAM_STR);
$stmt->bindParam(':some_id', $some_id, PDO::PARAM_STR);
$stmt->execute();
$result = $stmt->fetchAll();
return $result;
// alternative (from another query)
$stmt = $this->db->prepare($sql);
$stmt->execute(array(':id'=> $id));
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
return $result;
取決於*如何*您在使用PDO – 2013-03-27 14:04:10
@YourCommonSense我已經更新了查詢例如 – Steven 2013-03-27 14:10:59
問題,你可能想讀這樣的:HTTP://計算器.com/questions/134099/are-pdo-prepared-statements-sufficient-to-prevent-sql-injection – 2013-03-27 14:14:14