设想:
我有一个博客,我想在上面发帖。我设置了一个表单,我可以在其中写出博客文章并将其提交到单独的 php 页面,然后将其存储在数据库中(在确认是我发布后),从中读取并显示在主页上. 如何轻松转义任何引号或任何会干扰它存储在数据库中但仍允许它正确显示的内容(所有格式都完好无损)?
谢谢
设想:
我有一个博客,我想在上面发帖。我设置了一个表单,我可以在其中写出博客文章并将其提交到单独的 php 页面,然后将其存储在数据库中(在确认是我发布后),从中读取并显示在主页上. 如何轻松转义任何引号或任何会干扰它存储在数据库中但仍允许它正确显示的内容(所有格式都完好无损)?
谢谢
唯一会干扰它存储在 MySQL 数据库中的东西可以很容易地被mysql_real_escape_string()转义。
当您将其从数据库中拉出时,一切看起来都与转义并放入之前相同。在将其显示在网页上之前,您需要对文本运行htmlspecialchars()以防止任何恶意脚本有效果。
如果您根本不希望文本包含任何 HTML,则可选命令是strip_tags() 。
PHP 中的预处理语句可以很好地处理进入数据库的数据。
准备好的陈述总是一个非常好的主意。但是,您可能会考虑将数据库代码移动到存储过程。这将提高安全性和性能(在大多数情况下,取决于您使用的数据库以及缓存结果的方式)。
如果您不使用存储过程路由,还要确保在每次调用数据库时禁用多行命令。这应该在数据库配置文件中。它将禁用执行此操作的可能性:
你的命令;恶意命令
虽然还有其他方法,但这绝对是最安全的。