2017-02-09 4 views
0

Мне сказал другой программист define защищен для хранения паролей и сложнее взломать, чем сеанс в PHP.Является ли определение() 'в PHP безопасным?

Я читал руководство по 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

* «Константа - это идентификатор (имя) для простого значения. Как следует из названия, это значение ** не может изменить ** во время выполнения скрипта. .. "* по http://php.net/manual/en/language.constants.php *« Является ли «define()» в PHP безопасным? »* Да, чтобы эта часть была в безопасности. Просто не храните пароли в сеансах. –

+1

Подумайте об этом. Сегодня у вас 10 пользователей, а завтра у вас 20 пользователей. Что хорошего в пароле? Думайте о базах данных – RiggsFolly

ответ

1

Это то, что будет делать get_defined_contants:

Возвращает имена и значения всех констант, определенных в настоящее время. Сюда входят те, которые создаются расширениями, а также созданные с помощью функции define().

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

Определить, безусловно, не разработан с учетом требований безопасности. То, что вы хотите найти, - это нечто, связанное с шифрованием.

Как и другие, мне интересно, почему вы хотите хранить пароль в сеансе или как константу вообще. Некоторые подробности о том, для чего нужен пароль, могут помочь. Я не могу представить, что вы хотите сохранить его как часть входа пользователей в ваше приложение. Это для вашего кода для аутентификации с помощью API?

Смежные вопросы