Проблема безопасности с удаленной отправкой ajax-запросов? - PullRequest
0 голосов
/ 31 января 2011

Я использую ajax для отправки запросов на одну из моих php-страниц сайта ... но я делаю это со своей html-страницы. Это безопасно ....

Но что, если другие знают мою php-страницу и отправляют на эту страницу ajax-запросы из своего скрипта? Это может вызвать проблемы с безопасностью.

Как мне этого избежать?

Ответы [ 3 ]

3 голосов
/ 31 января 2011

Вы, кажется, пытаетесь защитить от CSRF-атак .

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

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

Мало что можно сделать, чтобы остановить это, единственная мысль, которая может помочь предотвратить это, - наличие хорошей архитектуры приложения.

Например, помогут следующие правила:

  • Старайтесь, чтобы Ajax оставался доступным только для чтения.
  • Если вам нужно использовать Ajax для записи, вы должны следовать этим правилам
    • Разрешать отправлять данные могут только пользователи, вошедшие в систему.
    • Подтвердите Подтвердите и проверьте ваши данные публикации, убедитесь, что они точно соответствуют вашим ожиданиям
    • Реализуйте метод хеширования формы, который генерирует уникальный хеш для каждой формы на каждой странице, и проверяйте по переменнойв рамках сеанса Aka ( Nonce )
    • Если пользователь вошел в систему, убедитесь, что существует период проверки, например, «Вы должны подождать 30 секунд перед публикацией».
    • Всегда используйте session_regenerate_id() перед тем, как позвонить session_start

Это всего лишь несколько указателей, которые должны помочь вам в пути, при исследовании которых вы столкнетесь с другимиЭто методы, используемые другими владельцами сайтов, но вы всегда должны помнить следующие 2 правила:

  • Никогда не доверяйте своим пользователям, просто ведите себя так, как будто вы делаете
  • Белый список и никогда не черный список.
1 голос
/ 31 января 2011

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

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