2017-02-09 15 views
0

私は別のプログラマから言われましたdefineはパスワードを保存するために安全で、PHPのセッションよりもハッキングするのが難しいです。PHPの 'define()'は安全ですか?

私はPHPマニュアルを読んでいましたが、defineがその要素をグローバルスペースに置くか、(print_r($ _ 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は本当に悪いアイデアですか?

+2

.... .... ...... – RiggsFolly

+1

* "定数は、単純な値の識別子(名前)です。名前が示すように、その値**はスクリプトの実行中に**変更できません。 .. * per http://php.net/manual/en/language.constants.php * "PHPの 'define()'は安全ですか?" *はい、その部分は安全です。セッションにパスワードを保存しないでください。 –

+1

それについて考えてみてください。今日は10人のユーザーがおり、明日は20人のユーザーがいます。定義されたパスワードは何が良いですか?データベースを考える – RiggsFolly

答えて

1

これはget_defined_contantsは何をするかです:

は、現在定義されている全ての定数の名前と値を返します。これには、拡張機能によって作成されたものと、define()関数で作成されたものが含まれます。

http://php.net/manual/en/function.get-defined-constants.php

間違いなくセキュリティを考慮して設計されていません定義します。探してみたいのは、暗号化に関係するものです。

他の人と同じように、なぜセッションにパスワードを保存するのか、まったく定数として保存するのが好きですか?パスワードの詳細についてのいくつかの詳細は役立つかもしれません。私はあなたがあなたのアプリにログインしているユーザーの一部としてそれを保存したいと思うとは想像できません。あなたのコードはAPIで認証されますか?