|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
17.04.2012, 22:09 | #1 |
Пользователь
Регистрация: 11.04.2012
Сообщений: 83
|
Авторизация на сайте
Доброе Время cуток!
Я начинающий программист.Помогите мне Gожалуйста разобраться с моим кодом для авторизации на сайт http://vsevo.16mb.com Код:
Последний раз редактировалось rosljk; 17.04.2012 в 22:16. Причина: Ошибка в коде |
18.04.2012, 00:11 | #2 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,341
|
Во-первых, какая ошибка?
Во-вторых, вы уверены в передаваемых параметрах? УПД Вы, похоже, не разбирались, что значат параметры? Просто перехватили сниффером и довольны Например, return=<непонятная строчка>, это закодированная ссылка на страницу (base64 кодирование). Включите у idhttp свойство handleredirects, так как на запрос возвращается не страница, а ссылка на другую страницу. Скорее всего у вас ошибка 302. Также неправильна строчка 0de0116a46f2695fea0bbfe9aa07d846=1. Эта строчка является динамически создаваемой. Правильнее сделать так: 1) получить с помощью idhttp страницу http://vsevo.16mb.com/index.php/login 2) распарсить ее и достать параметр, который является скрытым (спрятан в форме входа <input type="hidden" value="1" name="то - что нужно достать">) 3) сформировать правильный запрос вида: username=<логин>&password=<пароль>& return=aW5kZXgucGhwP29wdGlvbj1jb21f dXNlcnMmdmlldz1wcm9maWxl&<вытащенно е значение>=1 aW5kZXgucGhwP29wdGlvbj1jb21fdXNlcnM mdmlldz1wcm9maWxl - это index.php?option=com_users&view=pro file Возможно что-то еще упустил. Вероятно cookie тоже влияет, но при беглом просмотре трудно понять. УПД2 Работающий пример во вложении. УПД3 Забыл отключить настройки прокси в примере (поэтому он не работал).
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
Последний раз редактировалось BDA; 18.04.2012 в 18:30. |
18.04.2012, 18:11 | #3 |
Пользователь
Регистрация: 11.04.2012
Сообщений: 83
|
У меня вопрос к Вам BDA
Обесните тупому человеку
но у мне НИЧЕГО НЕ ПОНЯТНО ПОжалуйста обясните МНЕ ДОСТУПНО Последний раз редактировалось rosljk; 18.04.2012 в 18:34. |
18.04.2012, 18:39 | #4 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,341
|
Постараюсь объяснить:
1) Сначала смотрим, как происходит авторизация на сайте. Проходим ее несколько раз, попутно перехватывая все Charles (программа для отладки веб-сайтов и подобного). При заходе на сайт http://vsevo.16mb.com/index.php браузер получает cookies, которые потом будет передавать со следующими запросами. Значит нашей программе их тоже нужно получить. Для этого подключаем CookieManager и свойство AllowCookies. 2) Внимательно изучаем то, что передает программа при авторизации и изучаем html код формы входа. Благодаря нескольким заходам, понимаем, что последний параметр меняется при каждом входе. Мы должны понять откуда он берется. Оказывается что это скрытое поле формы входа. 3) После загрузки сайта и получения cookies "достаем" этот меняющийся параметр из html кода страницы. 4) Формируем правильное содержание для post запроса и вуаля - авторизация пройдена успешно. (исправленный пример выше)
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
18.04.2012, 21:29 | #5 |
Пользователь
Регистрация: 11.04.2012
Сообщений: 83
|
Я пользуюсь HTTPAnalyzer
я получаю Post Data: username - test password - 123456 Submit - Войти option - com_users task - user.login return - aW5kZXgucGhwP0l0ZW1pZD00MzU= 53924f0519b06741dd63044d82e4d427 - 1 а Cookies: Cookies Name a0940828b10aa9891adbaf61b6886196 и Value cfbfd0d5f059f8fd929bb10c374666cd как понять для чего ЭТО??? Последний раз редактировалось rosljk; 18.04.2012 в 21:40. |
18.04.2012, 21:36 | #6 |
Пользователь
Регистрация: 11.04.2012
Сообщений: 83
|
В твоем ПРИМЕРЕ мне выдоет ОШЫБКУ:
raised exception class EldSocketError with message 'Socket Error #10061 Connection refused.'.Process stopped.Use step or Run to continue. я жму ОК и меня кидает на ету строчку: tmp := copy(tmp, pos('aW5kZXgucGhwP0l0ZW1pZD00MzU=', tmp) + length('aW5kZXgucGhwP0l0ZW1pZD00MzU ='), length(tmp) - length('aW5kZXgucGhwP0l0ZW1pZD00MzU =')); И БОЛЬШЕ НИЧЕГО..... Что мне делать HELP???? |
18.04.2012, 21:42 | #7 |
Пользователь
Регистрация: 11.04.2012
Сообщений: 83
|
Вот здесь как то просто и быстро http://youtu.be/vLAQUbkn8dQ
|
18.04.2012, 21:59 | #8 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,341
|
Конечно просто и быстро, так как рассматривается простейший пример.
В случае сайта http://vsevo.16mb.com/index.php это не так. Он использует изменяемые параметры, чтобы сложнее было залогиниться. Cookies сами сохранятся в CookieManager, если настроить, так как я сказал выше (цитата: Для этого подключаем CookieManager и свойство AllowCookies). Попробуйте скачать пример еще раз и проверьте, открывается ли вообще сайт (у меня все работает). К вопросу для чего: 1) Вы хотите залогиниться на сайте (ваша цель) 2) Сайт старается оградиться от желающих на нем залогиниться с помощью программы Непонятные цифро-буквенные сочетания сами наталкивают на мысль, что они являются динамическими.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
19.04.2012, 10:21 | #9 |
Пользователь
Регистрация: 11.04.2012
Сообщений: 83
|
Как подключить
CookieManager и свойство AllowCookies? |
19.04.2012, 10:57 | #10 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,341
|
Положить на форму idhttp и cookiemanager. Включить у idhttp свойство allowcookies в инспекторе объектов. В том же инспекторе объектов задать у idhttp cookiemanager. Можно сделать то же самое в событии oncreate формы, предварительно положив эти компоненты на форму
Код:
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Авторизация на сайте | gawrilowalex | Работа с сетью в Delphi | 3 | 25.06.2011 00:26 |
Авторизация на сайте | Areostar | Общие вопросы .NET | 3 | 03.11.2010 17:22 |
Авторизация на сайте и.... | quarty | Общие вопросы Delphi | 0 | 30.10.2010 03:22 |
Авторизация на сайте. | Pliks | Общие вопросы по Java, Java SE, Kotlin | 5 | 08.06.2010 13:51 |