Учитывая произвольный сайт php:
www.foo.com/search.php?lookfor=needle%20in%20haystack&pg=1
Я хочу выяснить все возможные параметры php которые опущены.
В приведенном выше примере я вижу два параметра: lookfor
а также pg
Как узнать, какие другие параметры поддерживаются?
Моя текущая стратегия — Google для www.foo.com/search.php?
и посмотрите, появляются ли ссылки, которые содержат другие параметры, которые я еще не видел, например:
www.foo.com/search.php?lookfor=haystack%20in%20needle&secretoption=true
показывает еще один параметр под названием secretoption
Это может быть очень неприятно и не всегда работает. Есть ли лучший способ выяснить структуру API? Можно ли, например, создать URL-адрес, который будет запрашивать все эти параметры с php-сервера? Я не эксперт по PHP.
Это невозможно. PHP, как и многие другие, выполняется на сервере, и ничего о его коде не отправляется клиенту / браузеру. Если владелец сайта явно не предоставит вам информацию о том, что он принимает (например, для API), просто невозможно узнать это.
Любой способ фактического доступа к такой информации будет означать, что сервер уязвим к огромным проблемам безопасности (поскольку он будет отправлять данные, которые должны выполняться только на сервере), или быть чем-то недопустимым, поскольку это будет связано с атакой на сервер или его инфраструктура напрямую.
Единственный реальный Способ получить эту информацию — попросить владельца раскрыть информацию. Если вы можете предоставить вескую причину, которая в конечном итоге приносит вам пользу, возможно, они согласятся.
Я закончил тем, что использовал плагин Tamper Data для Firefox, который показывает все данные заголовка, которые размещены и отправлены:
https://addons.mozilla.org/en-us/firefox/addon/tamper-data/
Оказывается, что для последовательно программируемых веб-сайтов имена параметров php часто соответствуют ключам в запросах POST и ключам в файлах cookie. Например, POST-ключ «page» соответствовал легко угадываемому параметру php «pg», который я не смог найти, используя мой старый подход Google. Ключ cookie «mode» соответствовал параметру php «mode». Оба параметра не были найдены Google. Вы можете видеть, что параметр работает, если он изменяет внешний вид сайта.
Это все еще хорошо продуманная догадка, но ее можно объединить с моей старой техникой Google в нечто более надежное. Существует только несколько ярлыков для каждого слова. Кроме того, параметры, найденные в Google, можно сравнить с ключами, которые можно увидеть с помощью данных тампера, чтобы увидеть появляющийся шаблон именования.
Он также остается дружественным к веб-сайту, так как не требует полного сканирования. Вам также не нужно ждать недели в надежде получить ответ по электронной почте (и в большинстве случаев ожидать, что вы это сделаете, нереально)