Dav*_*ave 0 javascript eval developer-tools
因此,古老的标准是使用Eval是不好的,因为它可能导致重大的安全问题; 特别是在您正在评估可能来自用户输入的某些内容的情况下.这使得100%有意义,并且我从未遇到任何避免使用Eval的问题.不过,最近我遇到了一个奇怪的情况,这让我想到这种类型的东西有点不同.
我写了一个类似JS的函数:
function someFun(param, callback) {
bool = someOtherFun(param);
if(bool)
callback();
else
return false;
}
Run Code Online (Sandbox Code Playgroud)
这被大大剥离,但是主体是相同的:它调用另一个函数,并且基于它的返回值将执行作为参数提供的函数,否则它将返回false.但是,我认为,使用F12中的JS控制台,可以像使用Eval(txtbox.value)一样轻松利用这种东西.那有关系吗?
在F12的这个世界里,在我看来,Eval是我们最不担心的.任何知道注射攻击的人都可能知道F12是什么.我错了吗?
虽然你是正确的,像F12和firebug这样的工具会将你的JavaScript暴露在一个新的审查级别并让人们容易攻击,但你却错过了使用eval的危险.
而不是担心当前用户(浏览器中加载的页面可能会做什么)让我们自己关心他们在下一台计算机上的共同工作.假设同事在Stack Overflow上键入注释,然后将其存储在数据库中,然后发送到我们用户的计算机进行显示.并且假设作为渲染过程的一部分,注释被编码为JSON,然后在其上调用eval.
这是一个危险的漏洞利用等待,与我们的用户在页面上检查或执行自己的JavaScript无关.如果他们的同事在他们的评论中嵌入了恶意JavaScript并且我们在其上调用eval,则可能会执行该JavaScript,导致恶意代码在每个查看该页面的计算机上运行.
这就是为什么我们应该避免使用eval.
| 归档时间: |
|
| 查看次数: |
276 次 |
| 最近记录: |