【发布时间】:2013-03-11 19:26:34
【问题描述】:
我有两种选择来存储我的 html 字符串:
- 关闭
magic_quotes_gpc并使用 PDO 直接存储。 - 打开
magic_quotes_gpc并使用PDO 将我的html 字符串与斜线一起存储。然后,使用函数stripslashes();转换这些斜线
我需要知道这两种选择的优缺点,你推荐哪一种?我猜第一选择存在安全威胁。并用第二个选项加载到服务器上,但我需要知道专家怎么说。
【问题讨论】:
我有两种选择来存储我的 html 字符串:
magic_quotes_gpc 并使用 PDO 直接存储。magic_quotes_gpc 并使用PDO 将我的html 字符串与斜线一起存储。然后,使用函数stripslashes(); 转换这些斜线我需要知道这两种选择的优缺点,你推荐哪一种?我猜第一选择存在安全威胁。并用第二个选项加载到服务器上,但我需要知道专家怎么说。
【问题讨论】:
Magic Quotes are deprecated。不要使用它们。请改用 PDO 和 prepared statement。
附带说明,在这种情况下,您不应致电专家。如果 PHP 官方文档在一个大红框里写着不要使用这个特性,那就没有问题了。
【讨论】:
magic_quotes 已被弃用,因为它们给人一种安全的错误印象。您不应该依赖此功能,如果您使用 PDO 或 MySQLi 扩展和准备好的语句,您将是安全的。
我所做的是像这样使用 PDO:
$stmt = $db->prepare('INSERT INTO table (firstname, lastname) VALUES (:firstname,:lastname)');
$stmt->bindParam(':firstname', $firstname, PDO::PARAM_STR);
$stmt->bindParam(':lastname', $lastname, PDO::PARAM_STR);
$stmt->execute();
希望对你有帮助。
【讨论】: