Все,
У меня есть PHP-сайт, написанный в Zend Framework и MVC. Большинство действий контроллера проверяют, является ли запрос Ajax-запросом или нет, иначе они перенаправляют пользователя на домашнюю страницу. Я думаю о различных способах разрыва этого сайта. Я рассматриваю следующий сценарий:
Пользователь записывает запрос на отправку JQuery ajax одному из контроллеров на моем сайте и пытается опубликовать вредоносную информацию. Пример:
$.ajax({ type: 'POST', url: "https://marketsite/getinfo/getstuff", cache: false, dataType: "html", success: function(html_response){ alert(html_response); }, error: function(xhr,ajaxOptions,errorThrown){ alert(errorThrown); } });
Мой вопрос – это атрибут «url» в запросе ajax выше абсолютного пути? Я знаю, что это относительный путь. Кроме того, можно ли разорвать любой сайт, отправив такие запросы?
благодаря
Мой вопрос – это атрибут «url» в запросе ajax выше абсолютного пути?
Одна и та же политика происхождения предотвращает выполнение JavaScript запроса и чтение ответа, если только он не относится к тому же хосту, порту и протоколу.
Это не мешает злоумышленнику сделать любой HTTP-запрос, который им нравится (тривиально построить один вручную, который выглядит так же, как и один, сделанный с помощью JS), и это не мешает злоумышленнику обмануть пользователя, чтобы сделать любой запрос злоумышленником (он не позволяет злоумышленнику получить ответ на этот запрос).
Нет необходимости, чтобы злоумышленник привлекал PHP или любой другой серверный язык для выполнения любого из этих действий.
Кроме того, можно ли разорвать любой сайт, отправив такие запросы?
Это зависит от того, как сайт написан. Вы должны применять те же проверки безопасности на URI, предназначенные для доступа через JavaScript, как те, которые предназначены для доступа с прямым запросом браузера.
Если ваши клиенты не изменят свои настройки безопасности браузера, запросы AJAX ограничены относительными путями их исходных веб-сайтов. Конечно, хакер может изменить Javascript, чтобы указать на любой URL, который он хочет.
Ответ Дэвида был очень полезным, и мне нужно упомянуть пару информации. 1-Zend framework имеет функцию для обнаружения запроса ajax. Проверьте, что обнаружение запросов AJAX
2 – там есть проект с открытым исходным кодом ( PHP IDS ), который очень удобен, он позволяет:
В настоящее время PHPIDS обнаруживает все виды XSS, SQL Injection, встраивание заголовков, обход каталога, атаки RFE / LFI, DoS и LDAP. С помощью специальных алгоритмов преобразования PHPIDS даже может обнаруживать сильно запутанные атаки – это охватывает несколько кодировок, таких как UTF-7, сущности всех форм, такие как юникод JavaScript, десятичные и шестнадцатеричные объекты, а также обфускация комментариев, обфускация посредством конкатенации, код оболочки и многие другие варианты.
Надеюсь, я помог вам 🙂