64-символьный ключ в ajax-запросе для внесения изменений на сайте в роле админа
Не хватает пока опыта чтобы самому определить насколько безопасным или опасным была бы следующая схема авторизации на сайте.
Итак, на хостинг в папке public_html размещается html-файл с JavaScript'ом, который ajax'ом подгружает страницы сайта, а в случае внесения в них изменений отправляет ajax-запросы (POST) к php-файлу в той же папке сайта. php-файл содержит лишь инклуд другого php-файла, который в свою очередь находится в папке на уровень выше папки public_html и содержит уже сам код обработчика.
Если админу нужно записать какие то изменения в flat-файлы контента или в шаблоны на хостинге, тогда на html-странице через инпут type="file" он выбирает на компьютере обычный txt-файл, который содержит 64-символьный ключ. Дальше JavaScript вытягивает с файла сам ключ (например через FileReader), добавляет его к ajax-запросу и отправляет запрос php-обработчику.
Обработчик проверяет совпадает ли ключ в запросе с названием json-файла админа, который предварительно создаем тоже в папке на уровень выше public_html (внутри такого файла можно хранить данные об админе например email). Если ключ во входном запросе совпадает с названием json-файла, тогда php вносит соответственные изменения в контент или шаблоны. Т.е. подобно как делается в публичных API.
Таким образом "сессия" авторизации держится в памяти клиентского JavaScript в виде ключа до тех пор пока админ не перегрузит html-страницу или не закроет ее. А ключ на совпадение с json-файлом проверяется при каждом ajax-запросе. Соединение разумеется по https. 64-символьный ключ как пароль удобно хранить в txt-файле (в отличии от головы) и получить к нему доступ можно только если взломать компьютер или девайс (насколько понимаю).
Что не учел? Что нужно для повышения безопасности? Ведь все выглядит подозрительно просто