【发布时间】:2014-06-23 22:04:18
【问题描述】:
我正在使用来自 Mysqli 的准备好的语句。这会将输入作为文本并将其作为文本提交,从而防止 SQL 注入。
当我从数据库中读取文本时出现问题。我阅读的文本在浏览器中执行!
例如 - 如果我写为输入:
<b>Hello</b> how r u?<br>
<script> alert('He is fine dnt wry!') </script>
这会按原样进入数据库。但是当我使用我的SELECT 查询从数据库中读取它并显示它时,我的<b> 标签和<script> 标签被执行!
如何防止这种情况发生?
【问题讨论】:
-
htmlentities()或htmlspecialchars()也许? -
如果您希望接受 HTML,请使用 HTML Purifier 对其进行清理,或者考虑接受其他语言。 Markdown 很流行,PHP 中有几个可用的解析器。
-
取决于你想要什么。 php.net 非常棒。
标签: javascript php jquery mysql mysqli