Мне нужно сделать прокси-скрипт, который может получить доступ к странице, скрытой за экраном входа. Мне не нужен прокси-сервер для «имитации» входа в систему, вместо этого HTML-страница входа в систему должна отображаться пользователю обычно, а все файлы cookie и HTTP GET / POST передаются через прокси-сервер на сервер, поэтому логин должен быть аутентичный.
Мне не нужен логин / пароль, мне нужен только доступ к исходному коду HTML страниц, сгенерированных после входа в систему.
Кто-нибудь знает, как это можно сделать? Это легко?
Если нет, с чего начать? * (В настоящее время я использую PHP) *
То, о чем вы говорите, – это доступ к страницам, для которых вам необходимо пройти аутентификацию.
Вот несколько вещей, которые должны быть установлены:
Ключевым моментом является то, что вы не можете получить доступ, не подтверждая себя сначала.
Что касается языка, то это довольно удобно в PHP. И, как указывают теги на вопросе, вы используете правильные инструменты для выполнения этой работы.
Одна вещь, которую я хотел бы знать, – почему вы называете ее «прокси»? хотите ли вы показывать контент другим пользователям?
EDIT: [обновление после комментария]
В этом случае используйте phproxy. Он делает то, что вы хотите, наряду с множеством других функций.
Попросите свой PHP-скрипт указать нужный URL-адрес и перепишите все ссылки и формы, чтобы указать на ваш php-скрипт. При получении запросов к скрипту с параметром URL пересылайте его на удаленный сервер и повторяйте.
Вы не сможете поймать все запросы JavaScript (если вы не внедрили часть JavaScript вашего «прокси»)
Например: типы пользователей http://example.com/login.php в вашу прокси-форму.
отправьте пользователя на сайт http://yoursite.com/proxy.php?url=http://example.com/login.php
убедитесь, что urlencode параметр " http://example.com/login.php "
В http://yoursite.com/proxy.php вы делаете HTTP-запрос на http://example.com/login.php
$url = $_REQUEST['url']; // make sure we have a valid URL and not file path if (!preg_match("`https?\://`i", $url)) { die('Not a URL'); } // make the HTTP request to the requested URL $content = file_get_contents($url); // parse all links and forms actions and redirect back to this script $content = preg_replace("/some-smart-regex-here/i", "$1 or $2 smart replaces", $content); echo $content;
Обратите внимание, что / some-smart-regex-here / i на самом деле является выражением регулярного выражения, которое вы должны писать для разбора ссылок и т. Д.
Пример просто проксирует тело HTTP, вы можете проксировать HTTP-заголовки. Вы можете использовать функции fsockopen () или PHP-потока в PHP5 + (stream_socket_client () и т. Д.)
Вы можете проверить http://code.google.com/p/php-transparent-proxy/ , я сделал это, потому что я задавал себе тот же самый вопрос, и я решил его создать. Это под лицензией BSD, так что получайте удовольствие 🙂
Я бы рекомендовал использовать Curl (php-библиотеку, которую вам нужно активировать в php.ini). Он используется для управления удаленными веб-сайтами, обработки файлов cookie и всех необходимых параметров http. Вам нужно будет написать свой прокси-сервер на основе веб-страниц, которые вы нажимаете, но это сработает.