“清理”要存储在SQL数据库中的信息的最佳方法是什么?

时间:2009-08-05 15:02:18

标签: php mysql sanitization

情景:

我有一个我想发帖子的博客。我有一个表单设置,我可以写出一篇博文并将其提交到一个单独的php页面,然后将其存储在一个数据库中(在确认它是我发布后),它将从主页上读取并显示在主页上。我怎样才能轻易地逃避任何引用或任何会干扰它存储在数据库中但仍允许它正确显示(所有格式都完好无损)的引用?

由于

3 个答案:

答案 0 :(得分:4)

mysql_real_escape_string()可以轻松转义唯一会干扰存储在MySQL数据库中的内容。

当您将其从数据库中取出时,所有内容都与转义和放入之前的内容相同。在网页上显示之前,您需要在文本上运行htmlspecialchars()防止任何恶意脚本产生影响。

如果您不希望文本包含任何HTML,则可选命令为strip_tags()

答案 1 :(得分:4)

PHP中的

Prepared statements可以很好地处理进入数据库的数据清理工作。

答案 2 :(得分:1)

准备好的陈述总是一个好主意。但是,您可以考虑将数据库代码移动到存储过程。这将提高安全性和性能(在大多数情况下,取决于您使用的数据库以及缓存结果的方式)。

如果您不使用存储过程路由,还要确保每次调用数据库时禁用多行命令。这应该在数据库配置文件中。它将禁用这样做的可能性:

你的命令;恶意命令

虽然还有其他方法,但这绝对是最安全的。