Модераторы: Snowy, Poseidon, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> WinHttP + просроченный SSL 
V
    Опции темы
MadMas
  Дата 7.12.2007, 07:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Блондинко
*


Профиль
Группа: Участник
Сообщений: 89
Регистрация: 5.5.2006
Где: Екатеринбург

Репутация: нет
Всего: нет



Подскажите кто-нибудь, как с помощью компоненты WinHTTP выдергивать html со странички с просроченным с сертификатом ssl? Возможно ли вообще такое?
PM   Вверх
MetalFan
Дата 7.12.2007, 09:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 14
Всего: 128



как-то так
Код

var
  lOpt: dword;
...
lOpt := SECURITY_FLAG_IGNORE_CERT_CN_INVALID or SECURITY_FLAG_IGNORE_CERT_DATE_INVALID;
InternetSetOption( hHandle, INTERNET_OPTION_SECURITY_FLAGS, @lOpt, 4 );


Это сообщение отредактировал(а) MetalFan - 7.12.2007, 09:35


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
Snowy
Дата 7.12.2007, 11:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 53
Всего: 484



Ага. Есть такая фишка.
Причём в MSDN описана установка флага... Но есть одно но.
Не срабатывает. Точнее срабатывает, но не сразу.
Поэтому приходится циклить установку флага, пока он не сработает.
Вот, как сделано у меня в SWIn:
Код

    function FixInvalidCA: Boolean;
    var d, df: dword;
    begin
      d := 0; df := 0; result := true;
      if Silent then begin // если по тихому принять
        InternetQueryOption (hFile, INTERNET_OPTION_SECURITY_FLAGS, @df, d);
        df := df or SECURITY_FLAG_IGNORE_UNKNOWN_CA;
        InternetSetOption (hFile, INTERNET_OPTION_SECURITY_FLAGS, @df, SizeOf(df));
      end else begin // или через диалог
        df := InternetErrorDlg(GetDesktopWindow(), hFile, ERROR_INTERNET_INVALID_CA,
              FLAGS_ERROR_UI_FILTER_FOR_ERRORS or 
              FLAGS_ERROR_UI_FLAGS_GENERATE_DATA or 
              FLAGS_ERROR_UI_FLAGS_CHANGE_OPTIONS,
              Pointer(d));
        if df = 0 then Silent := true else result := false;
      end;
    end;

...

    repeat // крутим запрос в цикле
      SetLastError(0);
      if not HTTPSendRequest(hFile, h, Length(h), pointer(p), Length(p))
      then FError := getlasterror;
      if FError = ERROR_INTERNET_INVALID_CA then // если сертификат не сьъели, фиксим и повторяем
        if not FixInvalidCA then break; // если юзер нажал нет в диалоге - прекращаем
    until (FError <> ERROR_INTERNET_INVALID_CA);

PM MAIL   Вверх
MetalFan
Дата 7.12.2007, 12:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 14
Всего: 128



кстати, а можно ссылочку на страничку с кривым сертификатом?


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
MadMas
Дата 7.12.2007, 13:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Блондинко
*


Профиль
Группа: Участник
Сообщений: 89
Регистрация: 5.5.2006
Где: Екатеринбург

Репутация: нет
Всего: нет



Да, конечно.
https://statserv.mplik.ru/
Статистика для абонентов GoldenTelecom.

Добавлено через 8 минут и 50 секунд
Я, если честно, блондинка. И может я что-то не так понимаю и сейчас скажу очередную глупость, но мне кажется что оба варианта предполагают использование IE. Без этого как-то можно обойтись?
PM   Вверх
Snowy
Дата 7.12.2007, 14:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 53
Всего: 484



Причём тут IE?
WinInet. А в частности, вышеуказанный WinHTTP.
PM MAIL   Вверх
MadMas
Дата 7.12.2007, 14:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Блондинко
*


Профиль
Группа: Участник
Сообщений: 89
Регистрация: 5.5.2006
Где: Екатеринбург

Репутация: нет
Всего: нет



Спасибо большое, разобралась.
С компонентой swin все работает smile 

Это сообщение отредактировал(а) MadMas - 7.12.2007, 15:43
PM   Вверх
MetalFan
Дата 7.12.2007, 16:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 14
Всего: 128



кстати, если указать флаг SECURITY_FLAG_IGNORE_CERT_DATE_INVALID в HttpOpenRequest, то работает без всяких извращенств с циклами...


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
Snowy
Дата 7.12.2007, 16:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 53
Всего: 484



Ну тут не соглашусь.
Возможно он и работает в определённых условиях, но я таких не наблюдал.
В том же SWIn я изначально задаю этот флаг. Но не срабатывает.
Установка через диалог срабатывает сразу.
Через установку флага срабатывает, но не срасю. Отсюда и цикл.
Если бы флаги ставились бы изначально, я бы и не возился с циклами.
PM MAIL   Вверх
MetalFan
Дата 7.12.2007, 17:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 14
Всего: 128



Цитата(Snowy @  7.12.2007,  16:49 Найти цитируемый пост)
Возможно он и работает в определённых условиях, но я таких не наблюдал.

а я не наблюдаю пока условий, в которых он не работает  smile 


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
Snowy
Дата 7.12.2007, 17:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 53
Всего: 484



Зато я их наблюдаю постоянно ;-)
Возможно, у тебя IE 7 и там уже это пофиксили.
PM MAIL   Вверх
MetalFan
Дата 7.12.2007, 18:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 14
Всего: 128



Snowy,  smile 
неа, 6.0!
а можно просьба?! если попадется такой сайт, скинь плиз линк!!!


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0665 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.