2

我尝试禁止用户使用Firebug 等开发人员工具更改我的 javascript 变量

在此处输入图像描述

我的脚本很简单,就像..

var a = 1;
$('button').on('click',function(){
   $('div').html(a);
});

我的网站允许通过 Firebug 更改变量,为什么?

在我对 Fiddle ( http://jsfiddle.net/RjQTp/ ) 做了一个演示之后,我只是想知道为什么 Fiddle不能通过Firebug 更改变量。

有人可以解释我吗...

4

3 回答 3

3

Javascript 在客户端运行,许多浏览器允许您更改 javascript,不仅是变量值,还包括插入或删除行等...

出于这个原因,您应该始终在服务器端清理传入的数据,即使它来自您自己的网站。一般来说,您应该只将 javascript 视为改善 UI 和用户体验的一种手段,而不是作为一种手段验证、保护页面或执行重要的业务逻辑。

PHP 中包含一些方便的函数来处理变量验证

于 2013-08-01T09:12:10.263 回答
1

他们可以更改它,因为它在他们的系统上运行,有他们的规则。

反击的唯一方法是使用您正在运行的脚本测试更改。

我使用了一个系统,该系统对每个变量进行了三次声明,并每秒两次测试我的变量以更改任何集合。然后它改变和差异回到其他两个。

但是......他们仍然可以用他们的开发工具破坏我的反作弊脚本。

于 2013-08-01T09:15:34.340 回答
1
Object.defineProperty(window,'a',{
  value: "test",
  enumerable: true
});

我认为上面的代码可能无法更改,或者至少对于我这个级别的任何人来说都很难。一个月前我才知道这个东西。你知道早期的 javascript。克服这个问题的唯一方法是删除窗口对象,但如果你这样做,你会删除所有内容。如果你能够做到这一点。

于 2013-08-01T09:47:36.240 回答