Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/364.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_Security_Client - Fatal编程技术网

防止JavaScript';功能';在客户端上运行

防止JavaScript';功能';在客户端上运行,javascript,security,client,Javascript,Security,Client,是否有某种方法可以防止JavaScript中的某些“函数”在客户端上运行。我担心类似于Mimikatz的东西可能会从内存中运行,从而使黑客破坏主机。理想情况下,这将检测不允许运行的可定义代码并阻止执行 您所描述的内容存在一些问题。首先,很容易混淆JavaScript。例如,假设您不希望执行eval函数。设计一个正则表达式来删除对eval的直接调用非常简单。除非它不再叫eval怎么办 var e = eval; e('evil');` 你也可以检测到这一点,但你最终陷入了一个兔子洞,试图预测模糊

是否有某种方法可以防止JavaScript中的某些“函数”在客户端上运行。我担心类似于Mimikatz的东西可能会从内存中运行,从而使黑客破坏主机。理想情况下,这将检测不允许运行的可定义代码并阻止执行

您所描述的内容存在一些问题。首先,很容易混淆JavaScript。例如,假设您不希望执行eval函数。设计一个正则表达式来删除对eval的直接调用非常简单。除非它不再叫eval怎么办

var e = eval;
e('evil');`
你也可以检测到这一点,但你最终陷入了一个兔子洞,试图预测模糊技术。如果你真的想这么做,我建议你从像Greasemonkey或Tampermonkey这样的浏览器插件开始。这将是一个很大的工作,你会得到很多误报

另一个问题是决定阻止什么。根据实现的不同,JavaScript中只有十几个对象,另外还有几十个全局对象。哪个将被阻止?除非JavaScript引擎或浏览器中存在漏洞,否则它们都不是天生危险的。如果您意识到一个漏洞,那么修补将比过滤JavaScript更安全、更容易

JavaScript用于攻击的最常见方式是跨站点脚本(XSS)。两种主要方法是使用恶意脚本从域中窃取数据,或重新格式化页面以提示用户输入敏感数据(通常是凭据或支付卡号)。这两种技术都使用合法页面所使用的相同JavaScript函数,因此不可能通过分析JavaScript来有效地阻止。通过在请求参数中查找JavaScript可以阻止简单的XSS攻击,但浏览器已经做到了这一点

您的特定Mimikatz示例不是特定于JavaScript的。Mimikatz是用于后期开发的通用工具。换句话说,攻击者必须首先找到进入系统的方法,然后使用Mimikatz使其更容易留在系统中并进行恶意攻击。同样,如果JavaScript引擎或浏览器中没有初始漏洞,攻击者将无法使用JS运行类似于Mimikatz的东西


如果您仍然担心,请查看类似NoScript的插件。它支持定义哪些域可以运行JavaScript的策略。它不像您希望的那样细粒度,但易于设置。

您根本无法控制HTTP客户端。(我的意思是从你的服务器)许多浏览器都有完全禁用JavaScript的选项。这就是你想要的吗?嗨,Peter…我不想禁用javascript,因为这会影响用户的web体验,白名单会有一些好处,但决不是故障保护,所以我想做的是让一个插件分析javascript,以确定是否有,如策略中定义的,应允许运行的命令,然后单击。基于策略触发器和操作,例如不允许代码运行。抱歉-不应允许运行:)您是在谈论从开发人员控制台运行脚本还是用户在运行脚本?如果是后者,那么用户所做的就是在他们的浏览器中运行东西,而不是在你的服务器上,他们所能做的就是“攻击”他们自己。啊……回答得好,我感谢你分享你的专业知识。因此,例如,如果一个受限制的普通特权用户执行“Mimikatz.js”,它可能只会提供与用户特权级别相称的结果。由于缺乏特权,加载驱动程序和注入代码可能也无法实例化。如果你所指的是javascript版本的Mimikatz,那只是为了给你启发。Cheesah,我不知道JS模仿者。web浏览器中加载的JavaScript有两个主要限制。首先,它不能与底层操作系统交互,只能与浏览器提供的数据交互。这将阻止任何低级操作,如驱动程序加载。第二个限制是同源策略,它只允许脚本从发起脚本的网站请求数据。这变得有点复杂,因为“数据”是如何定义的,以及一些网站可以允许的故意异常。@shoguneye:您所指的JavaScript Mimikatz是什么?有链接吗?当然,这是包含在此链接中的链接