我是Codeigniter的新手。刚刚在我的项目中使用它过去2个月。我的项目中有一个评论部分。任何人都可以发表评论。每一件事情都是完美的,但是当任何一个人放置HTML内容(图像/视频)和然后当它们在评论部分显示时...直接HTML代码显示在评论页面而不是HTML内容(图像/视频)。
例如:当我在评论框中保存任何“嵌入youtube视频代码”时除了Youtube视频之外,输出来自“原始嵌入视频代码”......
我觉得它必须是一件小事,但实际上无法理解故障发生的地方。 Plz,如果有任何机构有解决方案,请尽快回复我。
答案 0 :(得分:2)
无法设计一个系统,其中有人只发布youtube链接本身,并通过正则表达式的组合,您自己的系统生成对象/嵌入代码本身,因此不存在安全风险?
答案 1 :(得分:1)
我曾经遇到过类似的问题 - 希望让最终用户能够发布YouTube视频,但不允许他们发布任何没有某种XSS保护的内容。
我最终使用htmlpurifier - http://htmlpurifier.org/来过滤表单中提交的内容。
可以对白名单进行修改,允许YouTube代码通过净化器。
http://htmlpurifier.org/docs/enduser-youtube.html
到目前为止,这种方法运行良好,但我的系统仍在开发中。
答案 2 :(得分:0)
作为快速黑客,您可以在视图中显示评论时htmlspecialchars_decode。这是非常危险的,但是当你收到评论时没有使用清理 - 在this page上搜索xss_clean。在将注释插入数据库之前,您还应该使用strip_tags删除不需要的所有HTML标记(除视频标记之外的所有内容)。