我正在构建一个网站,用户可以使用 PHP 和 mySQL 数据库来存储代码片段。但我不知道如何安全地将用户输入的代码插入我的数据库。我无法使用我通常使用的“安全”功能来转换输入(trim
, stripslashes
等),因为重点是您可以将代码视为其在数据库中的输入。我看过my_real_escape_string()
但我发现它并没有逃脱%
and _
,可以用作 MySQL 通配符。这会构成威胁吗?或者我可以使用my_real_escape_string
?提前致谢。
通配符仅在使用时才生效SELECT
查询,然后仅在使用某些功能时进行。因此,为了插入代码,可以使用mysql_real_escape_string()
因为它们不会产生任何影响。
为了使它更好,我建议您使用PHPs PDO http://php.net/pdo这样您就可以使用参数绑定。下面的例子来自PHP 手册 http://php.net/manual/en/pdo.prepared-statements.php:
<?php
$stmt = $dbh->prepare("INSERT INTO REGISTRY (name, value) VALUES (:name, :value)");
$stmt->bindParam(':name', $name);
$stmt->bindParam(':value', $value);
// insert one row
$name = 'one';
$value = 1;
$stmt->execute();
// insert another row with different values
$name = 'two';
$value = 2;
$stmt->execute();
?>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)