在nginx上将数据写入$ _SERVER

时间:2010-12-23 01:12:53

标签: php facebook nginx

由于不属于我自己的原因,我正在使用在nginx上运行的应用程序,该应用程序将GET变量放入PHP的$ _SERVER全局。

会发生什么:

  1. 用户使用Facebook连接登录

  2. Facebook将用户会话作为JSON编码的GET变量传回回调PHP脚本

  3. 在PHP脚本运行之前,nginx规则将GET变量放入$ _SERVER

  4. PHP脚本引用$ _SERVER中的变量并使用它将用户登录到站点

  5. 尽管事实上这是一个糟糕的解决方案,但是在nginx上将用户特定的运行时数据写入$ _SERVER变量甚至是安全的吗?当多个用户登录该站点时,它会产生任何并发问题吗?

1 个答案:

答案 0 :(得分:1)

用户之间不共享$_SERVER变量。每个PHP实例都有自己的$_SERVER变量副本。它包含与当前请求有关的数据,因此是特定于请求的。你可以毫无顾虑地写下你想要的所有内容,但这样做确实不是一个好习惯(这样做会导致性能下降,而且它也非常不正统)。
如果服务器只是设置显示在$_SERVER中的环境变量,那么这是可以接受的用途。只是不要从PHP脚本中写入它。