我发现了一个类似的问题,但它并没有真正给我想要的答案。本教程解释了 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;