php - 在将 PHP 和 MySQL 代码存储到数据库之前或在显示时何时清理它们?

标签 php mysql

好吧,我想知道什么时候应该清理我的代码,什么时候将它添加到数据库中或者什么时候将它显示在我的网页上或两者兼而有之?

我问这个问题是因为我在将代码存储到数据库之前对其进行了清理,但是当它显示给用户时我从不清理。

这是一个示例,说明我如何在将代码存储到数据库之前对其进行清理。

$title = mysqli_real_escape_string($mysqli, $purifier->purify(strip_tags($_POST['title'])));
$content = mysqli_real_escape_string($mysqli, $purifier->purify($_POST['content']));

最佳答案

您(可能)在这里谈论的是不同的威胁:

  • 您需要清理 插入数据库的数据以避免SQL injections .
  • 您还需要注意显示给用户的数据,因为它可能包含恶意脚本(如果它是由其他用户提交的)。请参阅维基百科的条目 cross-site scripting (又名 XSS)

对您的数据库有害的东西不一定对用户有害(反之亦然)。您必须相应地处理这两种威胁。

在你的例子中:

您可能希望在数据插入之前使用净化器 - 只需确保在用户获取它时它已“净化”。

您可能需要使用 striplashes () 如果 magic_quotes 打开

,则对从数据库检索的数据正确显示给用户

关于php - 在将 PHP 和 MySQL 代码存储到数据库之前或在显示时何时清理它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3327974/

相关文章:

php - 在 HTML 中使用 PHP 显示 MYSQL 信息

php - 使用表单内的按钮删除表行的最佳方法

php - 在运行时更改错误日志位置

mysql - MySQL 中的 IF 子句有问题

php - 如何在 Web 应用程序中实现 cron 作业逻辑?

php - 如果斜杠后面不包含空格,如何在斜杠后面添加空格?

mysql使用带有正则表达式的变量

mysql - 光标中的不同不起作用...?

php - 我怎样才能在 mysql 中获取最后一行特定的 id?

php - 从数据库表中填充选择下拉列表