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
Web应用程序安全性:JavaScript代码和数据的替换_Javascript_Security_Web Applications - Fatal编程技术网

Web应用程序安全性:JavaScript代码和数据的替换

Web应用程序安全性:JavaScript代码和数据的替换,javascript,security,web-applications,Javascript,Security,Web Applications,现在,我正在考虑对一些从服务器动态加载的代码执行eval()。实际上,任何类型的“eval()”都不是一个好主意(尤其是在安全方面)。我想到的是: 若我不使用SSL或任何服务器身份验证技术,那个么就很容易替换我的包并在用户机器上运行任何JS代码。现在,当有一些硬件API(WebGL)时,它可能是危险的 但是,另一方面,如果我以某种方式保护它,这是没有意义的,因为如果用户插入,当浏览器从加载页面的服务器请求.JS文件时(例如,从另一个网站),net JS代码可能会被简单地替换 因此,如果我的web

现在,我正在考虑对一些从服务器动态加载的代码执行eval()。实际上,任何类型的“eval()”都不是一个好主意(尤其是在安全方面)。我想到的是:

若我不使用SSL或任何服务器身份验证技术,那个么就很容易替换我的包并在用户机器上运行任何JS代码。现在,当有一些硬件API(WebGL)时,它可能是危险的

但是,另一方面,如果我以某种方式保护它,这是没有意义的,因为如果用户插入,当浏览器从加载页面的服务器请求.JS文件时(例如,从另一个网站),net JS代码可能会被简单地替换


因此,如果我的web应用程序中没有重要数据-我应该实现任何服务器身份验证吗?

如果包含
eval()
指令的页面和动态加载的JS源代码在同一台服务器上,可能不会因此降低安全性-攻击者可以简单地替换页面而不是动态加载的代码,并实现相同的破坏性效果,无论您是否使用
eval()

eval()。例如,当您通过jQuery的
.load()
加载HTML时,其中的任何JS都将被提取并自动执行
eval()


如果您需要以这种方式执行
eval()
操作,我认为您不会添加安全问题(尽管您可以通过更改架构来避免使用它)。

如果包含
eval()
指令的页面和动态加载的JS源代码位于同一服务器上,可能不会因此降低安全性-攻击者可以简单地替换页面而不是动态加载的代码,并实现相同的破坏性效果,无论您是否使用
eval()

eval()。例如,当您通过jQuery的
.load()
加载HTML时,其中的任何JS都将被提取并自动执行
eval()


如果您需要以这种方式执行
eval()
操作,我认为您不会增加安全问题(尽管您可以通过更改体系结构来避免使用它)。

您对eval的使用特别偏执。如果有人可以修改服务器的响应,从而得到评估,那么他们也可以引入新的评估


如果您只关心通过中间人攻击修改您的响应,那么无论您是否在评估,您都应该使用SSL。

您对评估的使用特别偏执。如果有人可以修改服务器的响应,从而得到评估,那么他们也可以引入新的评估


如果您关心的只是通过中间人攻击修改您的响应,那么无论您是否在评估,您都应该使用SSL。

为什么您需要评估这个?JS来自哪里,您编写它吗?为什么您需要评估这个?JS来自哪里,你写了吗?MitM实际上可以向网页中注入代码,你至少应该提到这一点。@Niklas我是说-
攻击者可以简单地替换网页而不是动态加载的代码
,这还不够清楚吗?欢迎提出改进建议。我的观点是,如果中间有一个人,不管怎么说,你都被搞砸了。但是,不管你是否动态加载JS代码,都不会造成这种情况。worse@NiklasBaumstark如果中间人攻击可以替换动态加载的JavaScript,那么它们也可以改变宿主网页。所以,Pekka的观点是这里没有新的漏洞。如果MitM可以拦截和更改浏览器请求,则主网页同样容易被篡改。使用SSL将提高针对这两种篡改的安全性-要求攻击者在能够篡改之前先破坏SSL请求(不是那么容易)。@jfriend00:这取决于动态加载的javascript是来自同一服务器还是来自另一服务器。@NiklasBaumstark-正如Pekka的回答所说的“在同一服务器上”-这就是我评论的上下文。MitM实际上可以将代码注入网页,你至少应该提到这一点。@Niklas我提到的是-
攻击者可以简单地替换网页而不是动态加载的代码
,这还不够清楚吗?欢迎提出改进建议。我的观点是,如果中间有一个人,不管怎么说,你都被搞砸了。但是,不管你是否动态加载JS代码,都不会造成这种情况。worse@NiklasBaumstark如果中间人攻击可以替换动态加载的JavaScript,那么它们也可以改变宿主网页。所以,Pekka的观点是这里没有新的漏洞。如果MitM可以拦截和更改浏览器请求,则主网页同样容易被篡改。使用SSL将提高针对这两种篡改的安全性-要求攻击者在能够篡改之前先破坏SSL请求(不是那么容易)。@jfriend00:这取决于动态加载的javascript是来自同一服务器还是来自另一服务器。@NiklasBaumstark-正如Pekka的回答所说的“在同一服务器上”-这就是我评论的背景。