Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
清除文本区域中的HTML_Html_Security_Forms - Fatal编程技术网

清除文本区域中的HTML

清除文本区域中的HTML,html,security,forms,Html,Security,Forms,我有一个包含两个文本区域的页面,注册用户可以在其中填充HTML代码。第一个有TinyMCE(因此HTML被清理),但另一个没有,因为我希望代码作为嵌入代码插入其他站点(主要是提供地图的站点,例如Google maps、MapMyRace.com等)。但问题是,这些其他网站可能提供不同的标签,而不仅仅是或。所以我不能剥离标签,因为这样我可能会剥离我不知道其他网站提供的标签。我将把这两个文本区域中的HTML保存到我的数据库中,以便检索并显示为其他页面的一部分 您有什么建议可以使此设置更安全吗?或者我

我有一个包含两个文本区域的页面,注册用户可以在其中填充HTML代码。第一个有TinyMCE(因此HTML被清理),但另一个没有,因为我希望代码作为嵌入代码插入其他站点(主要是提供地图的站点,例如Google maps、MapMyRace.com等)。但问题是,这些其他网站可能提供不同的标签,而不仅仅是
。所以我不能剥离标签,因为这样我可能会剥离我不知道其他网站提供的标签。我将把这两个文本区域中的HTML保存到我的数据库中,以便检索并显示为其他页面的一部分

您有什么建议可以使此设置更安全吗?或者我应该完全禁止在第二个文本区域中自由输入HTML吗?(或者..我让用户勾选一个复选框,表示“我对插入的代码的行为承担全部责任”。.LOL)

非常感谢您的意见:)


谢谢

让用户使用任意HTML是危险的。你可能想要一个黑名单和白名单,分别列出你不允许和允许的标签。

简单的回答是:免费HTML是不安全的,必须避免。没有任何东西可以阻止用户创建iframe,将用户重定向到有害页面,或在页面上放置广告,或破坏网站

我最喜欢的解决这个问题的方法是允许用户在文本框中粘贴链接(没有“嵌入页面”iframe代码)。然后我使用正则表达式来识别粘贴的链接(是youtube、Bing maps等等),并从粘贴的链接创建HTML,这对于大多数iframe提供程序来说并不太复杂。这对您来说需要做更多的工作,它限制了您可以在页面上放置的API,但它是安全的