Как защитить AJAX от использования без входа в систему? - PullRequest
1 голос
/ 27 июля 2011

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

Как мне защитить кого-либо от простого сохранения HTML и JavaScripts и, таким образом, полного обхода входа в систему и управления сеансами?

Вы генерируете токен при успешном входе в систему и отправляете его вместе со строкой JSON, чтобы скрипт на стороне сервера мог проверить это?

Если это так, существуют ли решения для этого, которые я могу просто использовать, поэтому мне не нужно писать их самому?

Меня интересуют решения как Djando, так и ROR, так как я сейчас пробую оба.

Ответы [ 4 ]

2 голосов
/ 27 июля 2011

Вы должны реализовать вход на сервер.Запросы AJAX существуют в том же сеансе, что и обычный запрос, поэтому, если кто-то вошел в систему, он также вошел для запроса AJAX.Если пользователь не вошел в систему, вы можете проверить это и для запроса AJAX.Проверьте сервер, если пользователь вошел в систему, и верните код ошибки, если нет.

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

2 голосов
/ 27 июля 2011

Вы создаете токен и сохраняете его в куки.Затем проверяйте этот файл cookie где угодно.Включая все ваши страницы AJAX.Файлы cookie также будут отправлены, когда вы сделаете запрос ajax.Это единственный безопасный вариант, который я могу себе представить.Вы всегда должны проверять токен в бэкэнде и отклонять его, если он не авторизован.

0 голосов
/ 27 июля 2011

Добавьте before_filter в контроллер вашего приложения, который проверяет, что пользователь вошел в систему:

before_filter: login_required

def login_required если только current_user перенаправить на страницу входа конец

0 голосов
/ 27 июля 2011

Использовать файл cookie сеанса на стороне сервера http://php.net/manual/en/reserved.variables.session.php

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