URLDownloadToFile - можно ли в запросе обойти cookie?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
SnAIper
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 13
Зарегистрирован: 09.09.2005 (Пт) 23:01
Откуда: Mytischi Текущий язык: VB, ПЗС

URLDownloadToFile - можно ли в запросе обойти cookie?

Сообщение SnAIper » 15.12.2005 (Чт) 3:32

Субж. Использую API-функцию URLDownloadToFile. Качаю профиль пользователя с форума. Стоит автологин. При закачке форум думает, что я его посетил, и обнуляет "новые сообщения". А скачивать надо, и не один раз... Пути решения:
1.) Не испоьзовать автологин
Не могу - у меня пароль такой, что скорее пальцы отвалятся ;)
Да и юзер не будет использовать прогу, если придётся пожертвовать автологином.
2.) Как-то обойти "узнавание" меня форумом, но не удаляя автологин програмно :D
Вопрос: как?
Спасибо.
P.S.: Кому интересно - могу выложить эту 1.6 версию, может кто ещё глюки найдёт? Пока их там дофигища, но всё-таки что-то уже функционирует, профили скачиваются и обрабатываются правильно.
C# в топку. С++ рулит.

Gigahard
Бывалый
Бывалый
 
Сообщения: 253
Зарегистрирован: 24.07.2002 (Ср) 11:15
Откуда: Russia

Сообщение Gigahard » 15.12.2005 (Чт) 12:06

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

SnAIper
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 13
Зарегистрирован: 09.09.2005 (Пт) 23:01
Откуда: Mytischi Текущий язык: VB, ПЗС

Сообщение SnAIper » 15.12.2005 (Чт) 12:50

Ну авторизация. А можно ли как-нить на время закачки, ну например cookie переместить в другое место, а потом, по завершении - опять на место вернуть? Это ведь принципиально важно, потеря новых сообщений портит весь эффект от проги! :(

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

EDIT: А папка кэша почему-то определяется как несуществующая(Temporary Internet Files), у неё Dir = ""... И кукисы оттуда не хотят ни удаляться, ни перемещаться. Не подскажете хоть, как cookies двигать?! Это же возможно, я знаю(т.к. есть Cookie Editor, да и сам IE это может :wink: )
C# в топку. С++ рулит.

Gigahard
Бывалый
Бывалый
 
Сообщения: 253
Зарегистрирован: 24.07.2002 (Ср) 11:15
Откуда: Russia

Сообщение Gigahard » 15.12.2005 (Чт) 14:39

А ты знаешь, как на сайте реализован механизм закачки? Возможно там закачка завязана на cookie авторизацию. Тогда удалив или переместив cookie тебе никто ничего не даст закачать...

Если закачка не защищена авторизацией, то есть не идет к примеру через скрипт PHP в котором нужно пройти авторизацию, а просто лежит на каком нибудь открытом URL, то просто передаешь этот URL в API функцию и качаешь...

SnAIper
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 13
Зарегистрирован: 09.09.2005 (Пт) 23:01
Откуда: Mytischi Текущий язык: VB, ПЗС

Сообщение SnAIper » 15.12.2005 (Чт) 15:35

Ыыы! Да не идёт она через куки! То есть скрипт пхп есть, но он выдаёт анонимам то же, что и авторизированным. А API-функция... Не знаю как, но пхп скрипт видит эту закачку как вход на форум, и проставляет дату входа на текущую, т.е. теряются сообщения.

Ну не могу! Неужели никто не знает, как просто перемещать cookie? :cry: :shock:
C# в топку. С++ рулит.

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 15.12.2005 (Чт) 15:58

Cookie - это текстовый файл, лежит где-то в C:\Documents and Settings\user\Local Settings\Temporary Internet Files.
Например мои куки для vbstreets имеют такое имя: antonariy@www.vbstreets[1].txt

Правило такое: {win account}@{имя сайта}[{число, обычно 1}].txt

Однако оно соблюдается не всегда. Например на algolist.manual.ru отдельные куки на каждый раздел и называются antonariy@attack[1].txt, antonariy@basic[1].txt и т.д.

Творческих узбеков. :cyclopsani:
Последний раз редактировалось Antonariy 15.12.2005 (Чт) 16:01, всего редактировалось 1 раз.
Лучший способ понять что-то самому — объяснить это другому.

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 15.12.2005 (Чт) 15:59

Решение: не использовать URLDownloadToFile, а качать через winsock.
Изображение

SnAIper
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 13
Зарегистрирован: 09.09.2005 (Пт) 23:01
Откуда: Mytischi Текущий язык: VB, ПЗС

Сообщение SnAIper » 16.12.2005 (Пт) 13:43

Хм...
то он просто откажется тебя увидеть как юзвера...
:lol: ... я её не пошлю - при скачивании оно даст мне новую куку, пустую. Я скачаю и заменю её старой=))

Кстати winsock учу, хотя есть подозрение, что с ним будет ну совсем облом... Ладно, ещё узнаю потом подробнее за куки...

P.S.:
кроме просьбы у админов убрать ТЕБЕ обнуление новых мессаг =)

Прямо как Кехель из ПЗ:
Кехель писал(а):Кхм, конечно, если у тебя есть - хи-хи - знакомый Великий Маг, то к нему с этим обломком и тащись
, причем у Зака как раз и был знакомый великий маг... Но эту проблему решить возможно, так что попытка обидеть не прошла :P
C# в топку. С++ рулит.

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 16.12.2005 (Пт) 17:43

НА!
На форме winsock1, text1 (multiline=true)


Код: Выделить всё

Private Sub Form_Load()
Me.Show
Text1.ScrollBars = 2
DoEvents
Winsock1.Protocol = sckTCPProtocol
Winsock1.Connect "bbs.vbstreets.ru", 80
Do
Label1.Caption = Winsock1.State
If Winsock1.State = 7 Then Exit Do
If Winsock1.State = 9 Then End
DoEvents
Loop
Winsock1.SendData "GET /profile.php?mode=viewprofile&u=7733 HTTP/1.0" & vbCrLf
Winsock1.SendData "Host: bbs.vbstreets.ru" & vbCrLf & vbCrLf
End Sub


Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim Data As String
Winsock1.GetData Data
Text1.Text = Text1.Text + Data
End Sub


Тока в HTTP заголовке "Host:" не убирай, а то он на другом сайте ищет :(
Изображение

SnAIper
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 13
Зарегистрирован: 09.09.2005 (Пт) 23:01
Откуда: Mytischi Текущий язык: VB, ПЗС

Сообщение SnAIper » 17.12.2005 (Сб) 0:34

Сенкс, заюзаю. Возможно, когда-нить я доведу прогу до такого состояния, когда глючить она будет не сама по себе, а только когда её на это толкают(например, эдитят память процесса итп) :)
Таким образом же качается любой файл, если скачивание не требует авторизации? Хотя чего это я, наверняка любой...
C# в топку. С++ рулит.

Gigahard
Бывалый
Бывалый
 
Сообщения: 253
Зарегистрирован: 24.07.2002 (Ср) 11:15
Откуда: Russia

Сообщение Gigahard » 21.12.2005 (Ср) 11:52

Ээээ... Что то я не догоняю... Тебе куку при закачке дают, что ты форум посетил?
А как они узнают, что это был ты, раз закачка анонимной была?
Я не улавливаю связи между двумя вещами:
а) Работает анонимная закачка
б) Они тебе в анонимном режиме клеют куку о посещении форума.
Линк на закачку можно получить в анонимном режиме или нет? Если ты получаешь линк в залогиненом режиме, то информация о посещении форума конкретным пользователем может быть заложена и не в куку, а в адрес самого лика! Например: http:/ /www.someserver.com/usersession_id/download.zip.
В данном случае идентификация, что такой то пользователь сделал закачку, содержится не в куке а в URL в качестве usersesion_id. Это обойти нельзя, если у тебя нет прямого доступа к файлу download.zip А умные люди на сервере наверняка не положили его в открытый доступ.

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 21.12.2005 (Ср) 16:06

У него висит кука, что он - это он, URLDownloadToFile эту куку шлёт серваку, тот думает, что он на форуме и обнуляет новые сообщения!
Причём тут:http:/ /www.someserver.com/usersession_id/download.zip, он с VBStreets профиль юзера качает!
Изображение

Gigahard
Бывалый
Бывалый
 
Сообщения: 253
Зарегистрирован: 24.07.2002 (Ср) 11:15
Откуда: Russia

Сообщение Gigahard » 21.12.2005 (Ср) 17:02

Я вот думаю, с какого URLDownloadToFile будет еще куки рассылать? Т.е. заниматься тем, чего от нее не требуется? Если она все же реально это делает и сервер позволяет анонимные загрузки, то можно:
а) Переименовать куку на время закачки,
б) Переместить куку на время закачки.

Только вот удастся ли это сделать через FSO? Вроде только сама винда может удалять или перемещать куки текущего пользователя.

в) Разлогинится с сервера и сделать анонимную закачку, а потом снова залогинится.
Последний раз редактировалось Gigahard 21.12.2005 (Ср) 17:10, всего редактировалось 1 раз.

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 21.12.2005 (Ср) 17:07

У мелкомягких спроси.
А предложенный код работает и новые мессаги не обнуляются.
Изображение

Gigahard
Бывалый
Бывалый
 
Сообщения: 253
Зарегистрирован: 24.07.2002 (Ср) 11:15
Откуда: Russia

Сообщение Gigahard » 21.12.2005 (Ср) 17:16

Куки выставляемые разными браузерами хранятся в разных местах. Получается, что URLDownloadToFile шлет исключительно куки IE? Шлет ли она их вообще...

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 21.12.2005 (Ср) 17:50

Gigahard писал(а):Куки выставляемые разными браузерами хранятся в разных местах. Получается, что URLDownloadToFile шлет исключительно куки IE? Шлет ли она их вообще...

Ты бы декларацию этой API почитал, что-ли.
Естественно, юзается IE.
Lasciate ogni speranza, voi ch'entrate.

Gigahard
Бывалый
Бывалый
 
Сообщения: 253
Зарегистрирован: 24.07.2002 (Ср) 11:15
Откуда: Russia

Сообщение Gigahard » 22.12.2005 (Чт) 10:36

Я уже читал декларацию этой функции и ее описание... Никаких намеков на то, что она взаимодействует с куками и IE, я не нашел. Откуда информация?

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 22.12.2005 (Чт) 12:55

Плохо читал значит.
Из описания статьи MSDN:
Minimum availability: Internet Explorer 3.0
Lasciate ogni speranza, voi ch'entrate.

Gigahard
Бывалый
Бывалый
 
Сообщения: 253
Зарегистрирован: 24.07.2002 (Ср) 11:15
Откуда: Russia

Сообщение Gigahard » 22.12.2005 (Чт) 14:46

О да, это говорит о многом :D :wink:
Я не телепат, откуда ж знать что эта функция там еще делает... :roll: Написано в доке, что файл грузит и фсе...

По идее должны быть отдельные функции по обработке хедеров, куков и прочего безобразия...

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 22.12.2005 (Чт) 15:16

Статья называется:
URL DownloadToFile (Internet Explorer - URL Monikers)

Помоему связь с IE тут очевидна.
Lasciate ogni speranza, voi ch'entrate.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot, Don Leno и гости: 132

    TopList