Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/78.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/html/css_Javascript_Html_Css_Security - Fatal编程技术网

允许用户上传javascript/html/css

允许用户上传javascript/html/css,javascript,html,css,security,Javascript,Html,Css,Security,我正在创建一个网站,允许用户使他们的网站在一定时间内保持活力。它的工作原理如下: 用户上传一个包含javascript/html/css/image的.zip文件 使用白名单筛选文件以删除不允许的扩展名> 一个新的子域将使用包含解压文件的随机名称创建 用户现在可以查看他的设计 那么,上传javascript/html/css文件可能会导致哪些安全问题?所有文件都存在潜在的安全漏洞。JavaScript、HTML和CSS文件可能是危险的,因为它们中都可能包含JavaScript代码。通过允许人

我正在创建一个网站,允许用户使他们的网站在一定时间内保持活力。它的工作原理如下:

  • 用户上传一个包含javascript/html/css/image的.zip文件
  • 使用白名单筛选文件以删除不允许的扩展名>
  • 一个新的子域将使用包含解压文件的随机名称创建
  • 用户现在可以查看他的设计

那么,上传javascript/html/css文件可能会导致哪些安全问题?

所有文件都存在潜在的安全漏洞。JavaScript、HTML和CSS文件可能是危险的,因为它们中都可能包含JavaScript代码。通过允许人们上传包含JavaScript代码的文件,你让他们上传将由访问者浏览器执行的代码

在现代浏览器上,在CSS文件中嵌入JavaScript代码并不是一个真正的问题。但是如果您希望支持较旧的浏览器,如IE6或7,那么CSS文件也是一个潜在的安全漏洞

攻击者使用的一种常见技术是跨站点脚本或XSS。基本上,攻击者通过使用表单或一些低安全性API将JavaScript代码注入网站,允许访问者向网站发送信息。该JavaScript代码随后可能会被所有其他用户执行,并可能窃取敏感信息。以下是关于它的更多信息:

现在,由于所有网站都位于不同的子域中,它们实际上有不同的来源,因此浏览器将防止一个网站的JavaScript篡改另一个网站的cookies。这称为同源策略,其详细描述如下:

请记住,这些恶意JavaScript文件之一可能会通过运行以下代码更改其来源:

document.domain = "yourdomain.com";
这可能是一个潜在的威胁。
此外,同源策略在某些浏览器上有不同的行为,例如Internet Explorer。您最好阅读最常见的web浏览器的文档。

不要试图自己实现这一点。使用内容管理系统。这是我想到的最危险的一个。我建议您不要按扩展名检查文件,而是通过分析文件并查看其实际内容,或者是否通过验证。如果一个好的CSS解析器不能解析.CSS文件,那么它就不是CSS。如果JavaScript解析器不能解析.js文件,那么它就不是JavaScript。这将为有效文件提供更可靠的过滤器。