Html 页面上的用户定义iframe
允许用户定义iframe内容(将显示在页面上)安全吗 比如说。有一个表单可以提交一些html标记文本。此文本将显示在iframe中的某个页面上 UPD:另一种解释: 有一个包含下一个内容的页面:Html 页面上的用户定义iframe,html,security,iframe,Html,Security,Iframe,允许用户定义iframe内容(将显示在页面上)安全吗 比如说。有一个表单可以提交一些html标记文本。此文本将显示在iframe中的某个页面上 UPD:另一种解释: 有一个包含下一个内容的页面: <html> <head>...</head> <body> ... <iframe> #document user-defined content here </iframe> ... <
<html>
<head>...</head>
<body>
...
<iframe>
#document
user-defined content here
</iframe>
...
</body>
</html>
...
...
#文件
此处为用户定义的内容
...
其中“用户定义的内容”是用户定义的内容。用户可以编写一些html标记,这些标记将显示在此页面上。
如果用户定义的内容如下所示:
<head>...</head>
<body>
<p>I am awesome user!</p>
</body>
。。。
我是一个很棒的用户
接下来将显示页面内容:
<html>
<head>...</head>
<body>
...
<iframe>
#document
<head>...</head>
<body>
<p>I am awesome user!</p>
</body>
</iframe>
...
</body>
</html>
...
...
#文件
...
我是一个很棒的用户
...
基本上有三个方面可能会出现问题:
- A。对他们实施制裁
- 提交损坏数据的用户。这通常不是一个问题
- 用户被欺骗通过社会工程提交有害数据(自我XSS攻击)
隔离iframe,使其中的代码不能接触主站点。将生成iframe内容的代码放在另一个域上,与加载该框架的代码相同。这基本上有三个方面可能会出错:
<iframe>
user-defined content here
</iframe>
- A。对他们实施制裁
- 提交损坏数据的用户。这通常不是一个问题
- 用户被欺骗通过社会工程提交有害数据(自我XSS攻击)
<iframe>
user-defined content here
</iframe>
此处为用户定义的内容
首先,这实际上不起作用。
标记的内容仅显示为不支持iFrame的古代浏览器的回退,您不能在其中包含正文内容。要从父页面将内容注入iframe,您必须:
- 将其编码为
URL(在IE中不起作用)数据:
- 将其放在
属性中(最新的HTML5版本,未得到很好的支持)iframe srcdoc
- 在父页面中编写来自JavaScript的iframe文档内容
- 通过根据已知良好标记和属性的白名单清理输入来删除脚本功能(这并不简单,因此请寻找经过测试的库来为您执行此操作,例如使用PHP的htmlpurifier)
- 在未来,
还可以从iframe内容中删除脚本,但这还不够可靠iframe沙盒
- 如果您必须允许脚本,那么,正如昆廷所建议的,从不同的域为用户提供内容
此处为用户定义的内容
首先,这实际上不起作用。
标记的内容仅显示为不支持iFrame的古代浏览器的回退,您不能在其中包含正文内容。要从父页面将内容注入iframe,您必须:
- 将其编码为
URL(在IE中不起作用)数据:
- 将其放在
属性中(最新的HTML5版本,未得到很好的支持)iframe srcdoc
- 在父页面中编写来自JavaScript的iframe文档内容
- 通过根据已知良好标记和属性的白名单清理输入来删除脚本功能(这并不简单,因此请寻找经过测试的库来为您执行此操作,例如使用PHP的htmlpurifier)
- 在未来,
还可以从iframe内容中删除脚本,但这还不够可靠iframe沙盒
- 如果您必须允许脚本,那么,正如昆廷所建议的,从不同的域为用户提供内容