обеспечить вызовы ajax для функций на стороне сервера - PullRequest
0 голосов
/ 04 октября 2011

У меня есть приложение codeigniter, в котором я делаю большинство вещей посредством вызовов ajax.Например, давайте возьмем создание учетной записи.Существует форма с четырьмя полями: имя пользователя, пароль, адрес электронной почты и номер мобильного телефона.

frm = $("signupform").serializearray();
$.post(base_url + "/auth/ajaxlogin/", frm, function(data){
                if(data==="true") {
                    window.location.reload();
                } else {
                   $("#loginresult").show(); 
                }
            });

с помощью этого сценария я позабочусь об отправке данных учетной записи в метод создания учетной записи в контроллере авторизации, создании учетной записи и входе пользователя. Но я уверен, что это очень уязвимо, скажемлюбой пользователь может написать вредоносный скрипт для непрерывного создания учетных записей в своей консоли js.Итак, каков наилучший способ обеспечить определенную функциональность, подобную этой.

Ответы [ 3 ]

3 голосов
/ 04 октября 2011

Ajax не имеет значения, что касается сервера, HTTP-запрос является HTTP-запросом.

Используйте обычные подходы для защиты от такого рода атак:

  • Подтверждение подтверждения участия отправлено на адрес электронной почты
  • Ограничение скорости
  • Капча (только если вышеперечисленное не обеспечивает достаточной защиты, они раздражают людей)
0 голосов
/ 04 октября 2011

Существует несколько способов обеспечения безопасности, но если вы хотите заблокировать злоупотребления отдельных пользователей, почему бы не проверить IP входящих запросов и не заблокировать повторные, поступающие с одного IP, в течение, скажем, X минут? Это не все исправит, но это дополнительный слой, который может быть добавлен с другими методологиями.

0 голосов
/ 04 октября 2011

Каждая страница может выписать уникальный ключ, действительный только в течение короткого периода времени, который является частью представления.Этот ключ действителен только один раз и только в течение нескольких минут и должен быть действительным для отправки формы для использования.Конечно, ключ будет виден в источнике, но поскольку он действителен только один раз, он будет препятствовать непрерывному созданию учетной записи.

Вы также можете минимизировать и запутать свой JS, чтобы злоумышленникам было труднее атаковать ваш сайт.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...