конецформыначалоформыКраулеры и симуляция броузера
Важным инструментом разведки web-приложений являются web-краулеры. Пауки обходят все страницы сервера и собирают все ссылки. Но что происходит если HREF указывает на JavaScript, осуществляющий Ajax вызов при помощи XHR объекта? Краулер может пропустить важную информацию.
Во многих случаях очень трудно симулировать работу rkbtynf. В качестве примера возьмем такие ссылки:
go1
go2
go3
При клике на линке go1 выполнится функция getMe(). Код ее такой (обратите внимание, что эта функциональность может быть реализована в отдельном файле):
function getMe()
{
var http;
http = new XMLHttpRequest();
http.open(«GET», «hi.html», true);
http.onreadystatechange = function()
{
if (http.readyState == 4) {
var response = http.responseText;
document.getElementById(‘result’).innerHTML = response;
}
}
http.send(null);
}
Такой код делает простое Ajax обращение к hi.html ресурсу на сервере.
Можно ли симулировать клик автоматически? Да, можно. Вот один из примеров реализации при помощи плагина Chickenfoot , который предоставляет JavaScript-овый API расширяющий программный интерфейс браузера.
Используя Chickenfoot можно написать простой скрипт для автоматизации поведения броузера. Применяя эту методологию можно легко автоматизировать и web-краулеры. Приведу в качестве примера простой скрипт, который кликает все якори с событиями onClick. Преимущество этого плагина в том, что он реально обрабатывает события делая XHR Ajax вызовы, которые пропускаются обычными краулерами, не способными сымитировать событие onClick.
l=find(‘link’)
for(i=0;i