2017-02-09 7 views
0

Ich wurde von einem anderen Programmierer ist sicher zum Speichern von Passwörtern und ist schwieriger zu hacken als eine Sitzung in PHP.Ist 'define()' in PHP sicher?

Ich habe das PHP-Handbuch gelesen, kann aber nichts finden, wenn setzt es Elemente im globalen Raum ist, können alle definierten Elemente aufgelistet haben (wie print_r ($ _ SESSION)), oder wenn es gerade ist sicher überhaupt etwas sichern.

PHP hatte eine Warnung vor unberechenbarem Verhalten, aber ich konnte nicht viel mehr finden.

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. 

Im Grunde ist meine Frage: Ist define eine wirklich schlechte Idee für Passwörter?

+2

.... JA ...... – RiggsFolly

+1

* "Eine Konstante ist ein Bezeichner (Name) für einen einfachen Wert. Wie der Name andeutet, kann dieser Wert ** sich während der Ausführung des Skripts nicht ändern **. .. "* nach http://php.net/manual/en/language.constants.php *" Ist 'define()' in PHP sicher? "* Ja, damit dieser Teil sicher ist. Passwörter einfach nicht in Sessions auf. –

+1

Denken Sie darüber nach. Sie haben heute 10 Benutzer und morgen haben Sie 20 Benutzer. Was nützt ein definiertes Passwort? Denken Sie an Datenbanken – RiggsFolly

Antwort

1

Dies ist, was get_defined_contants tun:

Gibt die Namen und Werte aller Konstanten zur Zeit definiert. Dies gilt sowohl für Erweiterungen, die mit der Funktion define() erstellt wurden.

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

definieren ist definitiv nicht mit Sicherheit im Auge behalten. Was Sie suchen sollten, ist etwas mit Verschlüsselung.

Wie andere, bin ich neugierig, warum Sie ein Passwort in der Sitzung oder als Konstante überhaupt speichern möchten. Einige Details zu dem Passwort sind hilfreich. Ich kann mir nicht vorstellen, dass Sie es als Teil der Anmeldung von Nutzern in Ihrer App speichern möchten. Ist es für Ihren Code mit einer API authentifizieren?