Есть веб-сайт, который достался от предшествовавших разработчиков.
Нужно проверить, делает ли сайт запросы во внешку. Под внешкой я подруземеваю другие сайты или ресурсы. Например, сайты погоды или валюты, счетчики яндекс или гугл аналитика или еще какой-нибудь сайт.
Я пока использовал devtool chrome вкладка Network.
Но, если я правильно понимаю, devtool chrome Network отслеживает только фронтенд часть (Jquery Ajax). А вот если запросы идут через cURL в PHP скриптах?
Сайт во время тестирования находиться на локальном веб сервере OpenServer - Apache 2.2 + PHP 5.4. Так что есть полный доступ не только к исходникам, но и к логам и настройкам Apache, PHP.
Какие инструменты использовать, чтобы отследить любые запросы на внешние ресурсы? Как вообще доказать другому разработчику что сделал такую проверку с точностью 99%?
UPD:
1. Можно ли для этого использовать Chrome Dev Tool?
2. Могут ли логи Apache показать идут ли запросы от сайта во внешку? Если да, то на что стоит обратить внимание в логах?
Ответ
Запросы вовне могут уходить, как верно замечено выше, как с клиентской (HTML/JS/...), так и с серверной (PHP/SSI/...) части. В общем случае 100% гарантию отсутствия механизма для произведения таких запросов можно получить только полностью изучив исходники - так как любые практические проверки могут показать лишь, производятся ли запросы "вовне" прямо сейчас. Ни одна проверка, на клиенте или сервере, не сможет гарантировать отсутствие "хитрой" логики, которая отправляет запросы "во внешку" только в определённое время суток, или только при определённом User-Agent клиента, например.
Клиентскую сторону можно тестировать средствами браузера, используя инструменты для разработчиков вроде Chrome Dev Tool, Firebug, или плагины для параноиков вроде RequestPolicy. При этом придётся максимально полно проделать руками с сайтом все возможные взаимодействия - посетить все страницы, попытаться отправить все HTML формы, и так далее.
Серверную сторону можно тестировать путём сканирования исходящего трафика: например, с помощью системного файрволла закрыв сервер для приёма входящих TCP соединений от любых IP, кроме своего собственного, и включив перехват и логгирование всего исходящего трафика чем-нибудь, вроде tcpdump, проделать, как и в предыдущем абзаце, сеанс максимально разнообразного и полного использования всех возможностей сайта. Если сайт не "стучит" вовне - в логах Вы ничего, кроме ответов себе самому по HTTP/HTTPS портам и, возможно, DNS запросов (Apache может при некоторых настройках пытаться делать reverse lookup, чтобы определить hostname для IP обратившегося к нему клиента), не встретите. Хотя там может быть какая-либо активность ОС сервера - например, синхронизация с ntp-серверами, если таковая настроена. Всех возможных комбинаций я не переберу - только ориентируясь в инфраструктуре и зная, как настроен сервер, можно с уверенностью толковать логи tcpdum-а на нём.
Надеюсь, мой ответ поможет понять общее направление для возможных исследований.
Update: в access логах Apache Вы не увидите запросов, которые PHP инициирует наружу - там только запросы, которые клиенты прислали на сервер. Внимание можно обратить на php-логи, если таковые пишутся. Там, теоретически, могут встречаться ошибки доступа к "внешке", если таковые случатся.
Комментариев нет:
Отправить комментарий