在javascript中获取函数的长度

时间:2011-05-17 18:02:16

标签: javascript node.js nowjs-sockets

我正在使用nodejs和nowjs。我想获取在服务器上调用该函数的函数的体长,并检查它是否相同。防止用户操纵客户端功能。并且可能排除可能发生变化的变量。有没有办法在javascript中执行此操作?

例如

客户端

now.sendMessage() {
    //Some code...
}

服务器

everyone.now.sendMessage() {
    //Check that the code is the exact length 
    //as the function body written in the clientside script
    //To see if it has been manipulated...
    if (codelength === ?) {
        //execute code
    } else {
       //return error
    }
}

3 个答案:

答案 0 :(得分:3)

可以这样做:http://jsfiddle.net/RsrCB/1/

但在实践中,它并不可靠。由于以下几个原因,无法检查JavaScript代码的完整性:

  • 很容易混淆它
  • 很容易覆盖完整性检查代码

答案 1 :(得分:2)

你现在使用错了。你无法信任用户。

现在您只需在客户端上定义过程并使用一些数据调用它们。您没有传递这样的敏感数据。

您发送给客户端的任何数据都属于客户端,您无法屏蔽劫持。

现在使用下面的websockets或XHR。您只需将数据发送到套接字上的客户端即可截获。

答案 2 :(得分:2)

试试这个:

   var codelength =  (String(yourfunction_name).length);