我需要你帮助解决一个非常简单的问题。文章我网站上某些页面的内容存储在MySQL数据库中,我在输出到浏览器时已经应用了 htmlspecialchars(),但实际上有合法的<img src="images/me.jpg">
,呈现为纯文本,同时它们应该是文章内容的有效图像的一部分。
如何成功显示图像,同时避免可能的XSS攻击等。
由于
答案 0 :(得分:0)
常见的方法是不使用HTML,而是使用自己的格式化语言,如bbcode或Markdown。这样,您可以轻松地将格式转换为HTML,同时避免让用户输入他们想要的任何HTML。
答案 1 :(得分:0)
Parse the HTML并弃置您不想保留的任何元素/属性/属性值。检查每个src
元素的img
值,看它是否是有效的URL,如果是,请检查它是否确实存在并且是有效图像。如果没有,丢弃该元素。
如果您使用专有格式化语言(例如BBCode或Markdown),您仍应对每个img
元素提供的值执行检查(许多解析BBCode,Markdown等的库将执行这些检查你。)
答案 2 :(得分:0)
使用HTMLPurifier - 它会删除所有脚本,包括放置在标记属性中的javascript,同时保留(并且格式正确)HTML代码