безопасно использовать редиректы javascript? - PullRequest
0 голосов
/ 18 января 2011

Я надеюсь создать форму входа ajax, которая перенаправляет пользователя при входе в систему - он собирается проверить имя пользователя и пароль в базе данных и отправить клиенту значение true.1003 * Как таковой я хочу сделать window.location="http://www.someplace.com/mypage.html";

Это безопасно?Есть ли способ пользователей отключить перенаправления javascripts?

Ответы [ 4 ]

2 голосов
/ 18 января 2011

Пользователь всегда может отключить все, что основано на JavaScript.

Тем не менее, использование javascript для перенаправления само по себе небезопасно, и я не вижу сценария злоупотребления, только сценарий поломки.

В целом все зависит от того, как вы определяете безопасный:)

1 голос
/ 18 января 2011

В дополнение к хорошему ответу Мартина, не забудьте защитить себя от атак с использованием SQL-инъекций: пользователь может очень легко самостоятельно получить доступ к целевой странице и отправлять «поддельные» AJAX-запросы со злонамеренным материалом, таким как 1' OR 1=1, в качестве имени пользователя илипароль.

В отличие от того, что вы думаете, запросы AJAX не полностью скрыты от пользователя и могут быть легко обнаружены и обработаны с использованием простых инструментов, доступных для всех.

1 голос
/ 18 января 2011

Это небезопасно, но есть 2 варианта перенаправления без использования JS (или если у кого-то отключен JS):

1), добавив метатег в вашу голову

<meta http-equiv="refresh" content="0;url=http://www.someplace.com/mypage.htm/" />

2) лучше с помощью перенаправления на стороне сервера, т. Е. (Php)

<?php
   header( 'Location: http://www.someplace.com/mypage.htm' ) ;
?>

Редактировать: как я ответил на комментарий @Spudley, это 2 других способа перенаправления на страницу без JS .. в вашемcase @Ashley Ward Я думаю, что это правильный способ перенаправить страницу для ajax-формы:)

Ps форма должна работать как в ajax, так и в не-ajax-стиле;) .. вспомните, что правильно сказали другие пользователи: JS можно отключить

0 голосов
/ 18 января 2011

Помните, что Javascript все запускается в клиентском браузере.Пользователь может видеть код и с помощью правильных инструментов может редактировать его на месте.

Поэтому ничто является "безопасным", когда вы запускаете Javascript в браузере.Вы всегда должны предполагать, что злонамеренный пользователь может и будет изменять ваши вызовы ajax, настраивать ваши переменные и изменять поток вашего кода javascript.

Однако, если вы учли это, сделав свой сервер-безопасность стороннего кода (т.е. предотвращение атак с использованием SQL-инъекций и т. д.), тогда вам не нужно слишком беспокоиться об этом.Хакер будет пытаться взломать ваш сайт, поэтому вам не нужно беспокоиться о том, сработает ли он для него.

Для обычного пользователя, который просто запускает код нормально, тогда ответ - да: ваше перенаправление JS должно быть совершенно безопасно.Пользователь может отключить Javascript, но, конечно, событие Ajax не сработало бы, если бы JS был отключен.

Если вы написали свой код Ajax, чтобы иметь запасной вариант для пользователей, не являющихся JS, тогда вы можете захотеть также обеспечить откат для перенаправления, но, по всей вероятности, ваш откат Ajax в любом случае загрузится прямо на перенаправленную страницу.

...