Сейчас я пишу проект, и я решил записать это с jquery
и ajax
запросы.
только вещь, я не знаю, это достаточно безопасно?
например, когда я проверяю имя пользователя при регистрации нового пользователя, я использую jQuery ajax запрос,
я получаю массив существующих имен пользователей от дб (с json) и затем проверяю, если new_username
нет inArray()
из существующих username
s, я выполняю другой запрос и регистрирую пользователя.
но что относительно безопасности? хакер meybe может найти способ изменить часть из моего if-else
операторы, и целый мой securite будут тормозить.
возможно, Вы поможете мне понять эту ситуацию?
Спасибо
Почему вы реализуете любой этой клиентской стороны?
Вы должны отправить имя пользователя / пароль по HTTPS в запросе AJAX и заставить сервер ответить только данными, необходимыми для пользователя, чтобы двигаться дальше, не весь список имен пользователей.
Даже если оставить в стороне безопасность, что, если у вас миллионы пользователей? Вы собираетесь отправить этот список всем клиентам, чтобы они вошли в систему?
Ajax не заменяет код на стороне сервера. Хотя с помощью ajax можно реализовать вход в систему и регистрацию, вам все равно придется проверять и сохранять данные на сервере.
Более разумная реализация могла бы просто отправить на сервер https-запрос, содержащий имя пользователя и пароль, на который сервер ответил бы положительно или отрицательно.
(Далее я предполагаю, что имя пользователя
- это идентификатор, с которым пользователь может войти в систему, а не какой-то псевдоним;))
Получать все имена пользователей в формате JSON - это плохо. Тогда злоумышленник немедленно получает все зарегистрированные имена пользователей !
Просто отправьте имя пользователя на сервер, подтвердите его там и отправьте либо «действительный», либо «недействительный» в качестве ответа. То есть проверьте доступность на стороне сервера .
Всегда проверять ввод пользователя на стороне сервера . JavaScript можно отключить.
Обновление:
Не имеет значения, задействован jQuery или нет. Все, что вы отправляете клиенту (и не хешируется или зашифровано ) , может быть прочитано клиентом , это не имеет значения будь то XMLHttpRequest или "нормальный" запрос.
Вы бы отправили HTML-таблицу со всеми именами пользователей любому посетителю вашего сайта? Надеюсь, что нет :)
Резюме:
Безопасность - это одна из тех вещей, которые лучше всего делать на стороне сервера, если это возможно. Мой типичный подход к входу в систему AJAX заключается в отправке имени пользователя и хэшированного пароля MD5 или SHA1 в метод на сервере, который затем позаботится обо всех деталях входа. Детали этой реализации будут зависеть от вашей технологии на стороне сервера, но большинство фреймворков для веб-приложений имеют средства для этого. Возможно, даже существуют решения, включающие библиотеки Javascript для работы на стороне клиента.