Вы на правильном пути, когда говорите, что должны хранить пароль в другом месте. Я бы порекомендовал базу данных, но если вы должны использовать файл, то вы можете просто прочитать файл в начале вашего PHP-файла.
Настоящая проблема безопасности заключается в том, что вы храните пароли в незашифрованном виде. Если кто-то завладеет вашим паролем, он сможет увидеть пароли как есть. Это очень опасно. Вы должны использовать методы, известные как хеширование и соление :
Когда пользователь регистрирует пароль, вы хешируете комбинацию пароля и уникальной для пользователя случайной строки, известной как соль. Хеширование является односторонней функцией, поэтому вы получаете строку, которая не может быть возвращена к исходному паролю, но все еще является ее «отпечатком». Затем вы сохраняете этот «отпечаток пальца» и соответствующую соль в базе данных.
Когда предпринята попытка входа в систему, вы вычисляете хеш аналогичным образом и смотрите, совпадают ли хэши. Таким образом, вы никогда не сохраняете пароль в незашифрованном виде.
Причина соли в том, чтобы предотвратить использование инструмента атаки, известного как радужные таблицы . Использование случайной соли на пользователя не позволяет злоумышленникам использовать предварительно вычисленные таблицы паролей к хэшам.
Для получения дополнительной информации по этой теме обратитесь к http://codahale.com/how-to-safely-store-a-password/.