动态创建全局变量。 [PHP加密]

时间:2010-05-09 01:57:36

标签: php encryption

有没有办法动态创建常量变量?

我们的想法是,在登录系统时,系统会要求用户上传一个可能是fread的小文本文件,并将其分配给可在整个系统中访问的var。

如果这是可能的,那么为了清楚起见,这个变量是否只有该用户可以访问且仅在会话处于活动状态时才会被访问?

安全性是这里的主要问题,将var存储在会话变量中会更实际吗?

计划:

数据库中的数据将通过mcrypt加密,密钥将存储在USB拇指驱动器上。用户将在访问系统时插入拇指驱动器。登录后,应用程序将提示用户上传密钥。他们将导航到拇指驱动器和键。通过fopen和fread,密钥将被分配给全局var,然后允许访问加密数据,并将用于加密输入到db的新信息。 当用户注销或会话超时时,全局变量将变为空。

谢谢!


注意:var需要是持久性的,并且可以通过许多页面访问并且cookie已经用完了。

3 个答案:

答案 0 :(得分:2)

最好的解决方案可能是将它存储在Session变量中,这在我看来是管理这类数据的最佳方式,尽管它可能取决于文件的大小。

答案 1 :(得分:0)

<?php

function first() {
 global $foo;
 $foo = 'bar';    
}

function second() {
global $foo;
echo $foo;
}

first();
second();

?>

只需输入全局关键字,您就可以在全球范围内粘贴任何您喜欢的内容。 虽然如卢克所说,听起来你应该使用自动会话变量。 http://www.php.net/manual/en/reserved.variables.session.php

答案 2 :(得分:0)

我已经确定以下解决方案可行:

当用户登录系统时,系统会提示他们上传密钥。上传脚本将分配唯一的随机文件名,并将文件放入临时目录。

文件的路径将设置为会话变量。需要时,将从会话var调用路径,file_get_contents()将用于检索密钥。

会话结束或超时时,会话变量将被删除,文件本身将通过unlink()删除。

谢谢!