0

我需要你的帮助来解决一个非常简单的问题。我网站的某些页面的内容存储在MySQL数据库中,我在输出到浏览器时对其应用 了htmlspecialchars(),但实际上有合法<img src="images/me.jpg">的,它们呈现为纯文本,同时它们应该是有效的图片部分文章内容。

如何成功显示图像,同时避免可能的 XSS 攻击等。

谢谢

4

3 回答 3

0

常见的方法是不使用 HTML,而是使用您自己的格式化语言,如 bbcode 或 Markdown。这样,您可以轻松地将格式转换为 HTML,同时避免让用户输入他们想要的任何 HTML。

于 2012-05-21T21:22:05.653 回答
0

根据HTML 标准解析 HTML并丢弃您不想保留的任何元素/属性/属性值。检查src每个img元素的值,看看它是否是一个有效的 URL,如果是,检查它是否真的存在并且是一个有效的图像。如果不是,则丢弃该元素。

如果您使用专有格式语言(例如 BBCode 或 Markdown),您仍应针对为每个img元素提供的值执行检查(许多解析 BBCode、Markdown 等的库将为您执行这些检查)。

于 2012-05-21T21:25:38.240 回答
0

使用HTMLPurifier - 它将删除任何脚本,包括放置在标签属性中的 javascript,同时保留(并且还形成良好的)HTML 代码

于 2012-05-21T21:35:19.140 回答