Я думаю о том, чтобы сохранить список паролей для пользователей (в конечном итоге больше информации о них) небольшого (макс. 20 пользователей) приложения в файле PHP в каталоге, например public_html_root/system/config/
<?php if($calledByApp !== true) die();
$pwds['username1'] = 'hispassword';
$pwds['username2'] = 'herpassword';
$pwds['username3'] = 'anotheroned';
?>
Теперь. hispassword
на самом деле хешированная версия
$hashedpasword = sha1($password.sha1($salt));
Таким образом, если файл включен, он проверяет наличие $calledByApp
, которое устанавливается при запуске с точки входа - то есть index.php
в корне, поэтому мы можем сказать, что это безопасно. Если он вызывается непосредственно из браузера - он не будет использоваться как текстовый файл, а скорее как файл PHP - и он также умрет, поскольку $calledByApp
вернет null
или false
.
Кроме того, если другой пользователь сохраняется / удаляется, файл перестраивается, поэтому он отражает всех пользователей. И после включения этого файла у нас есть все пользователи в симпатичном массиве, поэтому, если мы вызовем
if (is_string($pwds[$sanitized_username])
&& ($pwds[$sanitized_username] === $sanitized_sha1_userpassword))
мы сделаем логин.
Мой вопрос: достаточно ли этого ?
Пояснение: БД для пользователей выглядит несколько излишне - еще одна таблица для max 20 пользователей. Кроме того, хотя это и не проверяет, является ли пользователь реальным, реальное, оно не будет ничего делать с БД - похоже, это также дополнительная безопасность.