Выясните, есть ли у сайта ограниченная область, защищенная паролем - PullRequest
1 голос
/ 23 июля 2010

У меня большой список сайтов, и мне нужно знать, есть ли у них области, защищенные паролем.

Я думаю о том, чтобы сделать это: загрузить их все с помощью httrack, а затем написать скрипт, который ищет ключевые слова, такие как «Войти» и «401 Запрещено». Но проблема в том, что эти сайты разные / некоторые статические и некоторые динамические (html, cgi, php, java-applets ...), и большинство из них не будут использовать те же ключевые слова ...

У вас есть идеи получше?

Большое спасибо!

Ответы [ 6 ]

2 голосов
/ 01 августа 2010

Поиск полей пароля покажет вам, но не поможет с сайтами, которые используют HTTP-аутентификацию.Поиск 401s поможет с HTTP-аутентификацией, но не даст вам сайты, которые не используют ее, или те, которые не возвращают 401. Поиск ссылок, таких как поля «войти» или «имя пользователя», даст вам больше информации..

Я не думаю, что вы сможете сделать это полностью автоматически и быть уверенным, что вы действительно обнаруживаете все защищенные паролем области.

Возможно, вы захотитевзять библиотеку, которая хороша в веб-автоматизации, и самостоятельно написать небольшую программу, которая читает список целевых сайтов из файла, проверяет каждый и записывает в один файл слова «они определенно пародированы» и «это не так», а затем вы можете захотеть вручную проверить те, которые не являются, и внести изменения в вашу программу, чтобы приспособиться.Использование httrack отлично подходит для сбора данных, но это не поможет в обнаружении - если вы напишите свою собственную программу «проверка области, защищенной паролем», с помощью HLL общего назначения, вы сможете выполнять больше проверок и избежать генерации большего количества запросов.на сайт, чем необходимо для определения наличия защищенной паролем области.

Возможно, вам придется игнорировать robots.txt

Я рекомендую использовать порт perls mechanize для механизации или любую другую красивую библиотеку веб-автоматизации, которую вы предпочитаете.Почти все современные языки будут иметь хорошую библиотеку для открытия и поиска по веб-страницам, а также для просмотра заголовков HTTP.

Если вы не способны написать это самостоятельно, вам будет довольно сложно использоватьhttrack или wget или аналогичные, а затем поиск по ответам.

1 голос
/ 01 августа 2010

Вы можете попробовать использовать cURL и просто пытаться подключиться к каждому сайту по очереди (возможно, поместить их в текстовый файл и прочитать каждую строку, попытаться подключиться, повторить).

Вы можете настроить один из обратных вызовов, чтобы проверять код ответа HTTP и делать оттуда все, что вам нужно.

1 голос
/ 01 августа 2010

Поиск кодов 401 не сможет надежно их отловить, поскольку сайты могут не создавать ссылок на то, для чего у вас нет привилегий. То есть, пока вы не вошли в систему, она не покажет вам ничего, для чего вам нужно войти. OTOH некоторым сайтам (например, со всем статическим содержимым) удается открыть диалоговое окно входа для некоторых страниц, поэтому при поиске тегов ввода пароля также может не хватать.

Мой совет: найдите программу-паук, для которой вы можете получить исходный код, добавьте все тесты (множественное число), которые вы планируете использовать, и остановите первый положительный результат. Ищите паука, которого можно задушить way назад, он может игнорировать не HTML-файлы (возможно, делая HEAD-запросы и просматривая тип mime) и может работать с несколькими сайтами независимо и одновременно.

1 голос
/ 31 июля 2010

Вы можете просто использовать wget и сделать что-то вроде:

wget -A html,php,jsp,htm -S -r http://www.yoursite.com > output_yoursite.txt

Это приведет к wget рекурсивной загрузке всего сайта, но загрузит только окончания, перечисленные с опцией -A, в этом случае старайтесь избегать тяжелых файлов.

Заголовок будет направлен в файл output_yoursite.txt, который затем можно будет проанализировать для значения заголовка 401, что означает, что часть сайта требует аутентификации, и проанализировать файлы в соответствии с рекомендацией Конрада.

1 голос
/ 31 июля 2010

Я бы использовал httrack с несколькими ограничениями, а затем искал в загруженных файлах поля паролей.

Как правило, форму входа можно найти в двух ссылках на домашней странице.Почти все сайты электронной коммерции, веб-приложения и т. Д. Имеют формы входа в систему, к которым можно перейти, просто нажав одну ссылку на домашней странице, но другой уровень или даже два уровня почти гарантируют, что вы не пропустили ни одного.

Я бы также ограничил скорость загрузки httrack, запретил загружать любые файлы, отличные от HTML, и запретил бы загрузку внешних ссылок.Я бы также ограничил количество одновременных подключений к сайту до 2 или даже до 1. Это должно работать практически для всех сайтов, которые вы просматриваете, и не должно включать вас в список hosts.deny.

1 голос
/ 26 июля 2010

Ищите формы с полями пароля.

Возможно, вам придется почистить сайт, чтобы найти страницу входа.Ищите ссылки с такими фразами, как «вход», «вход», «вход», «вход» или «прочистить» весь сайт (разумеется, будьте осторожны).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...