С Новым годом! Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
187 / 180 / 25
Регистрация: 27.01.2012
Сообщений: 1,335

Авторизация на сайте (опера более его не открывает)

24.11.2013, 09:49. Показов 1035. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам

Не по теме:

Не уверен, ошибся ли я разделом или нет, но, как мне кажется, здесь правильнее всего написать



Мне нужна была авторизация на сайте vk.com. Реальная, через http, без использования ихнего API. Так как ничего не знал об HTTP, кол-во попыток авторизации было ~50. Авторизация у них проходит по обычной схеме:
CONNECT (открывает https)
POST (с паролем и логином)
В Fiddler (http-sniffer) есть возможность дешифровки с gzip и https, путем установки ихнего псевдо-сертификата и прокси на 8888 порту. Всё работало. Но спустя некоторое время, vk перестал нормально грузиться в опере и в моей программе. Пакеты иногда уходят без ответа, а, иногда, приходится ждать долго, но ответ все же приходит. Такое ощущение, что по условию выставлен наименьший приоритет для агента-оперы. Попробовал в своей программе изменить имя агента на другое и коннект появился, но спустя 5 запусков снова начал "тормозить". Другие браузеры - firefox, chrome, IE - отрабатывают как положено (вроде бы, но точно не так, как опера).

Думаю, проблема именно в моем флуде своей программой на vk, однако не могу понять, почему тогда не работает только opera, и вообще почему именно она не работает, ведь флуд происходит с процесса моей программы.
Можно ли как-то поменять имя агента-оперы, отсылаемого при запросах?
Ещё подозреваю, что дело в устанавливаемых сертификатах. Дело в том, что, когда включен режим дешифровки https в fiddler, любой сертификат нужно будет подтверждать вручную на любом сайте (вот тут, возможно, и кроется ответ на то, почему именно opera). Когда я включал режим дешифровки, я проверял работу именно на opera, где и принимал сертификаты, которые мне предлагали. Возможно, либо принял не то, либо отклонил случайно. Либо fiddler коряво удалил свой сертификат.
Cookie пытался чистить. Ничего.

Какие есть идеи?

Частично код (по мере кодинга, обновлялся, так что если были какие-то строчки, которые могли привести к этой проблеме, то, вполне возможно, они уже были мной удалены):
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
void OpenConnection(const CHAR* address, DWORD configurationType, 
                    const CHAR* agentName = AGENT_NAME, const int port = INTERNET_DEFAULT_HTTP_PORT)
{
    hInternet = InternetOpenA(agentName, configurationType, NULL, NULL, NULL);
    PrintError(__LINE__);
 
    hHttp = InternetConnectA(hInternet, address, port,
        NULL, NULL, INTERNET_SERVICE_HTTP, NULL, NULL);
    PrintError(__LINE__);
}
/*........*/
OpenConnection("login.vk.com", INTERNET_OPEN_TYPE_PRECONFIG, AGENT_NAME, 443);
    HINTERNET hRequest = HttpOpenRequestA(hHttp, CONNECT, "/",
        NULL, NULL, NULL, INTERNET_FLAG_SECURE, NULL);
 
CHAR* headers = new CHAR[BUFFER_SIZE];
    strcpy(headers, "Connection: Keep-Alive\n");
    operationState = HttpSendRequestA(hRequest, headers, strlen(headers), NULL, 0);
 
hRequest = HttpOpenRequestA(hHttp, POST, "?act=login",
            NULL, NULL, NULL, INTERNET_FLAG_SECURE , NULL);
 
strcpy(headers, "Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/webp, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1");
        HttpAddRequestHeadersA(hRequest, headers, strlen(headers), HTTP_ADDREQ_FLAG_ADD_IF_NEW);
        strcpy(headers, "Accept-Language: ru-RU,ru;q=0.9,en;q=0.8");
        HttpAddRequestHeadersA(hRequest, headers, strlen(headers), HTTP_ADDREQ_FLAG_ADD_IF_NEW);
strcpy(headers, "Content-Type: application/x-www-form-urlencoded");
        HttpAddRequestHeadersA(hRequest, headers, strlen(headers), HTTP_ADDREQ_FLAG_ADD_IF_NEW);
 
operationState = HttpSendRequestA(hRequest, NULL, 0, authorizationData, strlen(authorizationData)); //тело, естественно, приводить не буду. Там мои пароль и логин.
Так же следует заметить, что авторизация у меня эта по прежнему не работает, ибо (как я полагаю), wininet забирает куки браузера (вот тут тоже может быть загвоздка, ведь по умолчанию браузер opera) и их и подставляет в запрос, ибо даже если я в теле передаю левые пароль и логин, коннект все равно удается. Более того, код:
C++
1
2
3
4
5
6
7
CHAR *hdt = new CHAR[BUFFER_SIZE];
    DWORD hdtSize = 4096;
    InternetSetCookieA("http://login.vk.com/", NULL, "badcookie=bye; expires = Sat,01-Jan-1970 00:00:00 GMT");
    PrintError(__LINE__);
    operationState = InternetGetCookieA("http://login.vk.com/", NULL, hdt, &hdtSize);
    PrintError(__LINE__);
    printf("%s\n", hdt);
ничего не делает, по непонятной для меня причине (объясните, почему?). По идее, должен получить куки браузера и сделать их невалидными. Куки получает, но set не проходит. Т.е. как были, допустим, q321, так и остались q321 без badcookie=by...

Не по теме:

p.s Само сообщение так же задал на сайте оперы, но решил спросить и здесь, ибо, возможно, напортачил не в сертификатах или fiddler, а в коде

0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
24.11.2013, 09:49
Ответы с готовыми решениями:

Опера не открывает некоторые сайты
Вчера 27 скачал архив после запуска начал ругаться касперский система перезагрузилась после чего архив испарился теперь опера не открывает...

Опера переодически открывает вкладку dota2
Логи во вложении

Опера, Мозилла, Гугл не открывает страници
Здравствуйте уважаемые специалисты!!! Помогите вот с такой проблемой. НС интернета пытались скачать электронную книгу, и скачали не тот...

1
187 / 180 / 25
Регистрация: 27.01.2012
Сообщений: 1,335
25.11.2013, 16:04  [ТС]
Неужели нет идей?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.11.2013, 16:04
Помогаю со студенческими работами здесь

Опера непроизвольно открывает рекламные ссылки
Примерно раз в час-два. Не уверен на счёт других браузеров, но опера открывается даже если она была закрыта, т.ч. скорее всего только в...

Браузер Опера открывает вкладки с сайтом
Добрый вечер. У меня возникла следующая проблема с Оперой, появилась или поселилась в ней надоедливая открывающаяся вкладка, которая...

Браузер Opera сам открывает одну и ту же веб страницу
В общем, дело такое: Работаю на ноуте в опере. Решил разнообразить рабочий стол и установить видео обои с помощью приложения PUSH Video...

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

Опера не открывает страницу, а предлагает скачать файл
Во всех браузерах все нормально, а вот опера предлагает скачать файл к которому мы обращаемся. .htaccess Options -Indexes ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru