Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/408.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/229.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
Javascript 在网站中安全嵌入代码_Javascript_Php_Html_Css_Security - Fatal编程技术网

Javascript 在网站中安全嵌入代码

Javascript 在网站中安全嵌入代码,javascript,php,html,css,security,Javascript,Php,Html,Css,Security,我正在创建一个允许用户创建广告、应用程序等的网站。可以把它想象成Adsense for ads和Facebook apps for apps 因此,我允许用户使用提供的工具或通过自己的HTML代码创建他们想要的广告或应用程序,然后这些HTML代码将在网站中呈现为广告和应用程序,供其他用户查看 我的问题: 1) 当我允许用户添加他们自己的代码并嵌入到网站中时,我是否使我的网站面临安全风险?(我不确定,但我认为他们能够在javascript中添加一些恶意代码) 2) 如果我考虑使用Iframes将嵌

我正在创建一个允许用户创建广告、应用程序等的网站。可以把它想象成Adsense for ads和Facebook apps for apps

因此,我允许用户使用提供的工具或通过自己的HTML代码创建他们想要的广告或应用程序,然后这些HTML代码将在网站中呈现为广告和应用程序,供其他用户查看

我的问题:

1) 当我允许用户添加他们自己的代码并嵌入到网站中时,我是否使我的网站面临安全风险?(我不确定,但我认为他们能够在javascript中添加一些恶意代码)

2) 如果我考虑使用Iframes将嵌入的代码与网站的其他部分隔离开来,这会有问题吗?或者有更好的方法吗

我想要实现的目标:


某种元素,用于在网站中呈现用户生成的自定义HTML、CSS代码,而不影响安全性。

根据允许他们制作的广告或应用的类型以及他们可以使用的语言,您可能会在一些方面面临风险,尤其是如果其他用户可以看到它

假设他们可以使用html并添加此代码

<img src='fake.jpg' onerror='alert("xss");'>

在这种情况下,所有能够看到这种情况的用户都会受到xss攻击。如果是这种情况,请参阅此帖子->

我不建议使用服务器端语言,虽然iframe本身可能更安全,但同样的情况也适用,特别是如果您的域承载iframe。如果iframe src与显示iframe的域位于同一个域上,则可以丢弃iframe可能假装提供的任何安全性


最好的解决方案是提供您自己的所见即所得编辑器,将特殊代码转换为html代码。允许JS将是一种安全的方式,这可以通过创建自己的包装器(甚至在包装器中包装一系列jQuery函数)来完成,并将它们包含在您的所见即所得中。

1。是的,非常喜欢。2.iframes是一个更好的解决方案。。根据设计,iFrame是为了这些目的而设计的。谢谢你的回答。当我允许人们制作应用程序时,很多人会在其中使用javascript。因此,对于我的情况,阻止Javascript不是正确的方法。正如你所说,如果我给他们一个wysiwyg编辑器来创建内容,他们就不能向其中添加任何javascript代码。所以,我是否有其他方法可以允许用户完全灵活地使用任何语言,并且仍然将网站的其余部分与之隔离?顺便问一下,FB是如何做到的?他们不会受到安全威胁吗?当在stackoverflow中发布帖子时,您将看到一个添加内嵌JSFIDLE类框的简洁选项。您可以制作一个包装器来包装淡入或淡出等函数,并像该场景中的stackoverflow那样巧妙地包含它们。最好的办法是让他们在应用程序中使用JS,并拥有一个报告/投票系统。您可以通过手动或创建脚本自动检查代码中的某些内容(如iFrame),来自动禁止应用程序中的某些内容,但最终,如果它们使用JS,则需要进行某种程度的验证以获得答复。我明白你想说什么。我刚刚浏览了Facebook的代码,了解到他们正在使用iFrame进行应用。但是你所说的问题(如果来自同一领域的框架仍然让我担心),我会等待更多的答案,如果我没有找到更好的解决方案,我会接受你的答案。谢谢。正如你所提到的,已经是同一个域名了。诀窍在于,你将用户的应用程序或广告放在不同的服务器上,或者至少放在不同的域上,这些域最终可能指向你的子域。然后使用iframe..Akshay Khandelwal-子域正是我的下一个反应。