安全地将变量从客户端javascript传递到nodejs服务器

时间:2015-07-01 12:38:46

标签: javascript php node.js

我有一个使用php制作的网站,其中一部分是用节点js编写的。节点js服务器和php共享mysql数据库。 我的网站的一部分是使用nodejs,这要求我将用户ID从客户端传递到节点js服务器。

例如我正在做这样的事情

var user_id=parseInt(<?php echo $this->id; ?>);

php部分在zend中。所以对于那些不熟悉zend的人来说,这个id是在控制器中为这个特定视图设置的。

因此,当我查看此特定页面的源时,用户ID清晰可见,如果更改,用户可以更改另一个用户的数据库中的某些表,如果他传递了一些其他用户ID而不是他的。

隐藏此变量或其他方法的最佳方法是什么,这有助于我克服这个问题?

1 个答案:

答案 0 :(得分:2)

你这里有一些倒退的东西。

PHP也是一种后端语言,Node是你的后端语言。

现在要在他们内部进行交流为什么要通过HTML将参数传递给javascript,然后期望它是安全的

处理它的最佳方法是你应该在节点上创建一些API,这样PHP就可以通过与这个API交谈而不是等待javascript来直接将值发送给它。

OR

你应该创建一个令牌认证系统并使用它,这样每次为这个客户端生成php页面时,它会创建一个带有一些随机字符的令牌,然后将这个令牌传递给JS .. JS然后用这个令牌请求Node。节点会看到令牌表并识别客户端ID并执行必要的工作。

在节点端应该使用某种令牌/身份验证,否则你的服务器不安全。