-1

我正在将数据导入数据库中的文本字段。但是,当我尝试输入

<strong> Hi There </strong>

我在表中找到它(使用 php myadmin)

"&lt;strong&gt; Hi There &lt;/strong&gt;" 

在我的前端网页上显示为

<strong> Hi There </strong>

显然不是想要的结果。

这里有什么想法吗?我正在使用常规文本表单。

4

3 回答 3

1

当您输入数据时,它可能正在被清除 - 可能带有htmlspecialchars()htmlentities()

要解码标签,请使用html_entity_decode()

http://php.net/manual/en/function.html-entity-decode.php

于 2011-10-30T03:15:13.187 回答
1

是的。这里发生的是简单的编码,因此存储的形式是安全的。在将其显示在网页上之前,将其传递给 PHP 内置的 html_entity_decode()。

请注意,如果这没有发生,那么某人很容易将自己的 HTML 输入到不应包含 HTML 的字段(如用户名)中,然后他们可以修改您的网站。

于 2011-10-30T03:15:31.627 回答
0

在处理保存在数据库中或显示在您的内容中的不同用户输入时,您应该始终注意 xss 攻击。最好安全,然后对不起...

用户名: 检查最小和最大长度,不超出 ASCII 范围,严格禁止 html 或特殊字符,如<>;'"%从开头和结尾修剪空格。如果输出到表单总是使用htmlspecialchars().

密码: 检查最小和最大长度,通过至少 1 个 capitol 和一个 alpha char 来确保更安全。保存到数据库时始终加密,不要使用 md5。如果输出到表单,请始终使用htmlspecialchars()if 不使用该type="password"属性。

电子邮件: 检查它是否是有效的电子邮件地址。

主要评论、帖子提交区域: 剥离所有 javascript、html 和/或允许用户在需要时插入 BBcode 用于图像、链接、格式,然后在显示时将 BBcode 转换为有效的 html。

于 2011-10-30T04:19:43.470 回答