HTTP Базовая аутентификация склонна к прослушиванию и атакам типа «человек посередине».Рекомендуется использовать HTTPS.
Однако, если это не вариант, вы всегда можете отправить куки обратно клиенту и ввести имя пользователя / пароль, чтобы он не отображался в файле JS.Само собой разумеется, что пароль должен быть по крайней мере зашифрован / хеширован по соображениям безопасности.Затем на стороне сервера будет лежать ответственность за получение информации об аутентификации из cookie.
Теперь, если у вас нет никакого контроля над изменением кода на стороне сервера, у вас практически не осталось вариантовкроме хоронения учетных данных в глобальном методе ajaxSend()
, который будет отправлять имя пользователя / пароль при каждом запросе AJAX.Вы можете просто поместить это в какой-нибудь другой файл .js и затруднить его поиск, но вы в значительной степени ограничены этой формой безопасности.Хотя куки не делают вашу жизнь безопаснее.(Было бы хорошо, если бы пароль был хеширован / зашифрован).
Другая вещь, которую вы могли бы сделать, это иметь немного более сложную форму безопасности: сервер должен отправлять одноразовый номер с каждым ответом -nonce будет «подписан» сервером с использованием секретного ключа сервера, и вы можете использовать его для «шифрования» имени пользователя / пароля на стороне клиента для каждого запроса.Ваш сервер должен будет постоянно расшифровывать учетные данные.Это менее подвержено влиянию человека посередине, но все же не защищено от ошибок.
HTTPS спасет вас от каждого из вышеперечисленных, если это вариант для вас.
Надеюсь, это поможет.
ОБНОВЛЕНИЕ (согласно комментарию) : Суть покоя заключается в отсутствии состояния на сервере.Т.е. нет сессий!Следовательно, вам необходимо отправить учетные данные пользователя с КАЖДЫМ запросом, который клиент делает на сервере.Если у вас есть страница входа в систему, то очень трудно быть по-настоящему спокойной, поскольку нет «ресурса», называемого именем входа.Однако вот что вы можете сделать:
- Пользователь заходит на страницу входа в систему, вводит учетные данные и нажимает кнопку «логин»
- Отправляет POST-запрос на сервер с этими учетными данными - вероятно, на / Login
- Пусть сервер вернет запрошенный ресурс, для которого была необходима аутентификация, И установит cookie с действительными учетными данными для использования в следующем запросе
- Каждый последующий запрос будет направлен на соответствующий ресурсопределенный URL с определенным действием (GET, PUT, POST, DELETE ...).Сервер должен проверить данные аутентификации из куки-файла и решить, аутентифицирован ли пользователь, и выполнить дальнейшую авторизацию для предоставления доступа, если это необходимо.
Каждый запрос должен идентифицировать себя без того, чтобы сервер поддерживал сеанс- это дух безгражданства (и покоя;)