是';定义();在PHP中安全吗?

是';定义();在PHP中安全吗?,php,Php,另一位程序员告诉我,define用于存储密码是安全的,并且比PHP中的会话更难破解 我正在阅读PHP手册,但似乎找不到任何关于define是否将其元素放入全局空间,是否可以列出所有define元素(如print\r($\u SESSION)),或者它是否安全的信息 PHP有一个关于不可预测行为的警告,但我找不到更多 define("CONSTANT", "Hello world."); echo CONSTANT; // outputs "Hello world." While it is p

另一位程序员告诉我,
define
用于存储密码是安全的,并且比PHP中的会话更难破解

我正在阅读PHP手册,但似乎找不到任何关于
define
是否将其元素放入全局空间,是否可以列出所有define元素(如print\r($\u SESSION)),或者它是否安全的信息

PHP有一个关于不可预测行为的警告,但我找不到更多

define("CONSTANT", "Hello world.");
echo CONSTANT; // outputs "Hello world."

While it is possible to define resource constants, it is not recommended and may cause unpredictable behavior. 

基本上我的问题是:
define
密码真的是个坏主意吗?

这就是
get\u defined\u contants
将要做的:

返回当前定义的所有常量的名称和值。这包括由扩展创建的以及使用define()函数创建的

Define的设计绝对没有考虑到安全性。你要找的是一些涉及加密的东西


和其他人一样,我很好奇为什么要在会话中存储密码,或者干脆将密码存储为常量。有关密码用途的一些详细信息可能会有所帮助。我无法想象您希望将其存储为登录到应用程序的用户的一部分。您的代码是否需要使用API进行身份验证?

这就是
获取定义的内容
将要做的:

返回当前定义的所有常量的名称和值。这包括由扩展创建的以及使用define()函数创建的

Define的设计绝对没有考虑到安全性。你要找的是一些涉及加密的东西


和其他人一样,我很好奇为什么要在会话中存储密码,或者干脆将密码存储为常量。有关密码用途的一些详细信息可能会有所帮助。我无法想象您希望将其存储为登录到应用程序的用户的一部分。您的代码是否需要使用API进行身份验证?

。。。。是……”“常量是简单值的标识符(名称)。顾名思义,该值在脚本执行期间不能更改……”根据“PHP安全中的“定义()”是吗?”是的,因此该部分是安全的。只是不要在会话中存储密码。想想看。今天有10个用户,明天有20个用户。定义的密码有什么好处?想想数据库“定义密码真的是一个糟糕的主意吗?”——这要看情况而定,而且这个问题开始看起来“过于宽泛”/“基于意见”,IMHO。还有,你为什么要在会话中输入密码。在一个会话中,您只需要一个标志,上面写着“他们已完成登录”,然后可能是用户行的
id
,也可能是一个名称,这样您就不需要回到数据库中查找您在系统中一直使用的某些内容了。。。。是……”“常量是简单值的标识符(名称)。顾名思义,该值在脚本执行期间不能更改……”根据“PHP安全中的“定义()”是吗?”是的,因此该部分是安全的。只是不要在会话中存储密码。想想看。今天有10个用户,明天有20个用户。定义的密码有什么好处?想想数据库“定义密码真的是一个糟糕的主意吗?”——这要看情况而定,而且这个问题开始看起来“过于宽泛”/“基于意见”,IMHO。还有,你为什么要在会话中输入密码。在一个会话中,您只需要一个标志,上面写着“他们已完成登录”,然后可能是用户行的
id
,也可能是一个名称,这样您就不需要返回数据库来查找您在系统中一直使用的某些内容