Это - одно из последствий "компиляции однажды, выполненный где угодно" лозунг: выполнение Java независимо от размера слова используемого оборудования и порядка байтов; JVM работает везде тот же путь.
Эта гарантия независимости работает намного лучше, чем попытка абстрагировать ОС далеко;-)
, который зависит от типа паролей, которые вы хотите сохранить.
, если вы хотите сохранить пароли для сравнения, например, наличие $ users
, тогда можно использовать хеширование. sha1
, md5
или любой другой вариант (здесь обзор)
добавление соли учетных записей для дополнительной безопасности, потому что тот же пароль не приведет к тот же хэш
, если вы хотите хранить пароли для подключения к другим ресурсам, например к базе данных: вы будете в большей безопасности, если храните свои пароли вне корня документа, т.е. недоступны для браузеров. если это невозможно, вы можете использовать файл .htaccess
, чтобы отклонить все запросы извне
Ваш PHP-код (обнаружение ошибок конфигурации) будет обрабатываться на сервере. Ничто внутри блоков Php?>;
никогда не будет видно в браузере. Вы должны убедиться, что ваш сервер развертывания не будет показывать клиенту синтаксические ошибки, т. Е. Для сообщения об ошибках установлено значение, не включающее E_PARSE, во избежание поспешного редактирования живого кода (согласитесь, мы все это делаем :) утечка некоторой информации.
Edit: Суть их сохранения в файле вне корня документа, чтобы избежать разоблачения, если ваша конфигурация PHP сломается, безусловно, действительна. Когда я использовал PHP, я сохранял файл config.inc вне htdocs, который требовал
d во время выполнения, и экспортировал переменные конфигурации (например, пароли).
Есть множество способов сделать это. Однако люди не смогут просмотреть пароль, который вы сохранили (в виде обычного текста) в файле PHP, поскольку PHP является языком на стороне сервера, что означает, что, пока вы не распечатаете его в браузере, он будет оставаться невидимым.
Так что это «безопасно».
Допустим, ваш пароль - « iamanuisance
». Вот как сохранить пароль в вашем коде. Просто вставьте это где-нибудь в заголовок.
//calculate the answer to the universe
${p()}=implode(null,array(chr(0150+floor(rand(define(chr(ord('i')+16),'m'),
2*define(chr(0x58),1)-0.01))),str_repeat('a',X),y,sprintf('%c%c',
0141,0x2E|(2<<5)),implode('',array_map('chr', explode(substr(md5('M#1H1Am'),
ord('#')-9,true),'117210521152097211020992101')))));function p(){return
implode('',array_reverse(str_split('drowssap')));}
На случай, если это не совершенно очевидно , вы можете легко получить доступ к паролю позже как $ password
. Ура! : P
Хранить пароль в зашифрованном виде. Например, возьмите вывод:
sha1("secretpassword");
... и вставьте его в свой код. Еще лучше, поместите его в свою базу данных или в файл вне дерева каталогов веб-сервера.
Если вы можете получить пароль в PHP, то его можно будет восстановить ...
Единственное, что вы можете сделать, это переместить свой пароль в «защищенное» место.
Большинство хостинговых компаний предлагают отдельное место, где вы можете разместить файлы БД и т. Д., И это место не будет доступно через браузер. Вы должны хранить там пароли.
Но они все еще находятся на вашем сервере, и когда кто-то получает доступ к вашему ящику, он получает ваш пароль. (Он получает доступ к вашему PHP, который может его декодировать, и у него есть доступ к защищенному файлу -> он может его прочитать)
Так что не существует такой вещи, как «безопасный пароль»
Единственный вариант ВЫ должны НЕ СОХРАНИТЬ ПАРОЛИ для ваших пользователей и т. Д. Я злюсь, если подписываюсь на услугу, и они предлагают мне прислать мой пароль по электронной почте, если я его забуду. Они хранят его «извлекаемым способом», и вам не следует этого делать.
Вот здесь-то и вступают в игру все хеширование и соление. Вы хотите убедиться, что кто-то может получить доступ к ресурсу. Таким образом, вы хешируете + солируете пароль и сохраняете его в БД для ПОЛЬЗОВАТЕЛЯ, который хочет получить доступ к службе, и когда пользователь хочет аутентифицироваться, вы применяете тот же алгоритм для создания хеша и сравнения их.
Базовый, вероятно, не на 100% герметичный, но достаточный для общих целей:
хеш-пароль (используйте соль для дополнительной безопасности) с использованием вашего любимого алгоритма и сохраните хеш (и соль) . Сравните соленый и хешированный ввод с сохраненными данными, чтобы проверить пароль.
Блоки кода PHP не могут быть получены клиентами, если они не выведут что-то. Обратите внимание:
<?php
if($password=="abcd")
echo "OK";
else
echo "Wrong.";
?>
Пользователь не может получить ни ОК, ни Неверно.
Лучше всего хранить пароль над корневым каталогом. Если вы решите сохранить пароль в файле php, никто не сможет его просмотреть, потому что файлы php хранятся на сервере. Но если сервер не поддерживает php, эти файлы будут доставлены в виде текстовых файлов, и любой сможет увидеть пароль.
Обычно я не доверяю сырому PHP-коду для паролей к службам. Напишите простое расширение PHP для освобождения пароля. Это гарантирует, что рабочий набор не содержит паролей, и делает для взломанной машины дополнительным шагом для предоставления доступа хакеру к службе.