如何禁止使用Developer工具更改变量

时间:2013-08-01 09:08:41

标签: javascript jquery variables javascript-debugger

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

enter image description here

我的脚本如此简单......

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

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

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

有人可以告诉我...

3 个答案:

答案 0 :(得分:3)

Javascript在客户端上运行,许多浏览器允许您更改javascripts,而不仅仅是变量值,还可以插入或删除行等......

出于这个原因,您应该始终清理服务器端的传入数据,即使它来自您自己的网站。 通常,您应该只考虑使用javascript来改善UI和用户体验,但绝不能将其作为验证,保护页面或执行重要业务逻辑的手段。

There are some handy functions included in PHP for handling variable validation

答案 1 :(得分:1)

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

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

我使用了一个系统,它声明了每个变量三次,每次测试我的变量两次,以便更改任何一组。然后它会改变并且差异回到另外两个。

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

答案 2 :(得分:1)

Object.defineProperty(window,'a',{
  value: "test",
  enumerable: true
});

我认为,上面的代码可能会让我无法改变,至少对我这个级别的任何人来说都是如此。我刚刚在一个月前了解了这些东西。你知道早期的javascript。解决这个问题的唯一方法是删除窗口对象,但如果这样做,则删除所有内容。如果你能做到这一点。