猿问

如何保护网页的自定义用户输入代码?

我的网站上有一项功能,允许我的用户创建自定义“网页”。他们可以随心所欲地在其中添加 HTML 元素、CSS 和自定义 javascript 代码。


我打算保存整个网页(HTML,CSS,JavaScript的,jQuery的)代码MySQL数据与TEXT或MEDIUMTEXT(除非你有一个更好的解决办法可能?)。我也在使用 PHP。


这是我插入代码的一部分:


$stmt = prepare("INSERT INTO webpages (content) VALUES (:content));

...

如何保护插入到数据库中的内容/网页代码,和/或保护显示的文本?


这是检索代码的一部分:


$stmt = prepare("SELECT * FROM webpages WHERE id = :id");

...

谢谢你


神不在的星期二
浏览 160回答 2
2回答

眼眸繁星

通常,如果您要存储和显示来自用户的 HTML,您应该通过htmlpurifier 之类的工具运行它以确保 HTML 中没有恶意内容。但是,这将删除任何 javascript,因为您不能信任提交的任何内容。另一种方法是在 iframe 中显示用户的 HTML,方法是将其内容设置为保存的 HTML,并启用沙盒选项。
随时随地看视频慕课网APP
我要回答