Как отправить форму в обработчик после ввода пароля?
Доброго времени суток. Есть обычная html форма у которой есть обработчик. При нажатии на кнопку "отправить" появляется модальное окно с инпутом ввода пароля. При правильном вводе перекидывает на страницу обработчика. Как правильнее сделать такую задачу, что бы максимально обезопасить?
jwwwe, ответ на этот вопрос потребует рассказать Вам про всю цепочку взаимодействия клиента и сервера. По сути Вы задали очень общий вопрос.
В самом общем случае действуйте по следующему алгоритму (расписываю очень обобщенно, на каждом из этапов есть множество нюансов):
1. при обращении, серверный скрипт проверяет наличие идентификатора сессии (обычно передаваемого с помощью cookies) а также наличие переданных логина и пароля
2. если были переданы правильные логин и пароль, то серверный скрипт создает новый идентификатор сессии, привязывая к нему параметры вошедшего пользователя и отправляет назад (клиенту) страничку с контентом а также в виде cookies этот идентификатор.
Если же был получен идентификатор сессии, то сервер смотрит есть ли такой, не прошли ли у него сроки годности (если были установлены) и если все ОК, отдает клиенту страничку с контентом
Если же ни логин с паролем ни сейссия не действительны - отправляет клиенту страничку с просьбой ввести логин и пароль.
Основные нюансы:
- пароль в обязательном порядке хранить и сверять в хэшированном виде
- настоятельно рекомендую с идентификатором сессии использовать так называемую соль/salt
- настоятельно рекомендую делать одноразовые идентификаторы сессии. но это наложит некоторые ограничения, связанные с отправкой правильного идентификатора в случае если клиент откроет сразу несколько вкладок с вашим сайтом. Ограничения эти можно обойти, но это потребует от Вас более углубленного понимания вопроса.
- все странички и функционал, доступ к которым не должен производится без авторизации не должны быть доступны без проверки сессии/логинапароля.
- для сессий желательно устанавливать сроки годности а также запоминать и проверять их на сервере
- и много чего еще.