1

我正在使用 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
    }
}
4

3 回答 3

3

可以做到:http: //jsfiddle.net/RsrCB/1/

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

  • 很容易混淆它
  • 覆盖完整性检查代码很容易
于 2011-05-17T18:05:13.597 回答
3

试试这个:

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

有了这些知识,您还可以计算函数体上的一些哈希值并进行比较。

于 2011-05-17T18:07:38.433 回答
2

你现在用错了。你不能信任用户。

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

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

现在在下面使用 websockets 或 XHR。您只需在套接字上向客户端发送数据,它就可以被拦截。

于 2011-05-17T18:04:50.773 回答