Страница: 1 |
Вопрос: Как удалить или получить доступ к cookie-файлам? | Добавлено: 15.12.07 19:15 |
Автор вопроса: ![]() |
Смысл такой, очень понадобилась процедура, для роботы с cookie-файлами.. Internet Explorer-а.
Кто подскажет как программно можно удалять cookie, читать их, создавать :) |
Ответы | Всего ответов: 15 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Администратор ICQ: 278109632 Вопросов: 42 Ответов: 3949 |
Web-сайт: Профиль | Цитата | #1 | Добавлено: 15.12.07 21:04 |
ну у эксплорера есть стандартная папка с кукисами для каждого юзера. там все файлы. вот и читай сколько влезет ![]() |
Номер ответа: 2 Автор ответа: ![]() ![]() ICQ: 162823477 Вопросов: 31 Ответов: 114 |
Профиль | Цитата | #2 | Добавлено: 15.12.07 23:02 |
Да, я заметил:
C:\Documents and Settings\UserName\Cookies читать действительно можно, но.. как удалить? kill "C:\Documents and Settings\UserName\Cookies\*.txt" помогает, но несовсем ![]() файлы-то сами удаляются, но некорректно.. в базе данных индекса.. всё остаётся.. точнее ссылка. И это критически. Как можно корректно удалить все cookie средствами VB.. Подойдут даже самые экстремальные варианты. Равнозначно операции в настройках IE - очистить cookie ![]() |
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Администратор ICQ: 278109632 Вопросов: 42 Ответов: 3949 |
Web-сайт: Профиль | Цитата | #3 | Добавлено: 15.12.07 23:52 |
Дизасм ![]() idag.exe "c:\program files\internet explorer\iexplore.exe" ![]() И быстренько ищем что откуда берется, как что удалить и вообще все, что угодно ![]() |
Номер ответа: 4 Автор ответа: ![]() ![]() ICQ: 162823477 Вопросов: 31 Ответов: 114 |
Профиль | Цитата | #4 | Добавлено: 16.12.07 00:56 |
Я не хакер, поэтому ищу официальный способ ![]() и по-моему в iexplore.exe нету ничего.. всё в библиотеках, количество которых несколько тыщь.. Люди, ну неужели нету компетентных людей? Может какой-нить жава-vbs скрипт есть? или проникнуть в объектную модель IE и как-то добраться официальным способом до куков.. этих злосчастных. |
Номер ответа: 5 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 1 Ответов: 51 |
Профиль | Цитата | #5 | Добавлено: 16.12.07 02:28 |
Куки, как и все др. файлы с которыми работает IE храняться в его кеше, если при доступе к ним не было запрета на кеширование. Ни в каких папках их нет, Executioner, не надо говорить ерунды. Для доступа к кешу нужно использовать эти функции
Declare Sub FindCloseUrlCache Lib "wininet.dll" (ByVal hEnumHandle As Long) Declare Function DeleteUrlCacheEntry Lib "wininet.dll" Alias " ![]() Declare Function FindNextUrlCacheEntry Lib "wininet.dll" Alias "FindNextUrlCacheEntryA" (ByVal hEnumHandle As Long, ByVal lpNextCacheEntryInfo As Long, ByRef lpdwNextCacheEntryInfoBufferSize As Long) As Long Declare Function FindFirstUrlCacheEntry Lib "wininet.dll" Alias "FindFirstUrlCacheEntryA" (ByVal lpszUrlSearchPattern As String, ByVal lpFirstCacheEntryInfo As Long, ByRef lpdwFirstCacheEntryInfoBufferSize As Long) As Long и Type INTERNET_CACHE_ENTRY_INFO Apache2, примеров в инете полно, поищи в гугле.. лень писать.. |
Номер ответа: 6 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Лидер форума ICQ: 216865379 Вопросов: 106 Ответов: 9979 |
Web-сайт: Профиль | Цитата | #6 | Добавлено: 16.12.07 06:01 |
http://www.google.ru/search?hl=ru&q=iecv&lr=
Ну а дальше idag ![]() |
Номер ответа: 7 Автор ответа: ![]() ![]() ICQ: 162823477 Вопросов: 31 Ответов: 114 |
Профиль | Цитата | #7 | Добавлено: 16.12.07 09:46 |
Шутников просим не флудить! ![]() Кто-нить может привести реально работающий пример? Потому, что я с API на вы.. вот доп материалы: http://www.vbnet.ru/faq/showtopic.asp?id=385 http://www.vbstreets.ru/VB/Articles/66050.aspx http://support.microsoft.com/kb/311289/ru http://www.delphilab.ru/content/view/51/31/ http://subscribe.ru/archive/inet.webbuild.javascripthome/200609/28111409.html НА разных языках.. но ничего конкретного. Для моей задачи необходимо очистить все куки, а кэш html файлов не трогать! Для себя пока реальным выходом вижу: 1. с помощью VB менять дату на далёкое будущее-прошлое.. 2. VB+JAva: VB: читает специфическое имя в каждом cookie C:\Documents and Settings\UserName\Cookies\ и котом WebBrowser1.document.write ("Java" ![]() Java: var exp = new Date(); exp.setTime (exp.getTime() - 1000000000); // This cookie is history (changed -1 to make it previous time) var cval = GetCookie ('полученное имя куки'); document.cookie ='DemoName' + "=" + cval + "; expires=" + exp.toGMTString(); alert("Cookie удалены." ![]() Есть более цивильный вариант? - выкладывайте ![]() |
Номер ответа: 8 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client Вопросов: 236 Ответов: 8362 |
Профиль | Цитата | #8 | Добавлено: 17.12.07 20:45 |
![]() Во-вторых тогда уже не document.write, а eval В-третьих я бы советовал таки прислушаться к советам RetupЫ ![]() |
Номер ответа: 9 Автор ответа: ![]() ![]() ICQ: 162823477 Вопросов: 31 Ответов: 114 |
Профиль | Цитата | #9 | Добавлено: 18.12.07 15:24 |
Ну да.. Java-script не помогает.. ![]() т.к. не может удалить куки созданные другими сайтами. подскажите какой код, что ли на vb.. а то не знаю даже с чего начать. |
Номер ответа: 10 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client Вопросов: 236 Ответов: 8362 |
Профиль | Цитата | #10 | Добавлено: 20.12.07 01:19 |
в базе данных индекса.. всё остаётся.. точнее ссылка А что за база данных индекса? Может и ссылку оттуда удалять и всё ок? ![]() |
Номер ответа: 11 Автор ответа: ![]() ![]() ICQ: 162823477 Вопросов: 31 Ответов: 114 |
Профиль | Цитата | #11 | Добавлено: 22.12.07 12:02 |
ну База данных.. типа реестра включая ссылки и на временные файлы.
Так как грамотно удалить? |
Номер ответа: 12 Автор ответа: ![]() ![]() ICQ: 162823477 Вопросов: 31 Ответов: 114 |
Профиль | Цитата | #12 | Добавлено: 22.12.07 13:14 |
Немного поразмыслив, почитав многие доки, уже близок к истине, научился удалять и проверять есть ли такой куукc в кэше:
Private Const ERROR_INSUFFICIENT_BUFFER = 122
Private Type FILETIME dwLowDateTime As Long dwHighDateTime As Long End Type Private Type INTERNET_CACHE_ENTRY_INFO dwStructSize As Long lpszSourceUrlName As String lpszLocalFileName As String CacheEntryType As String dwUseCount As Long dwHitRate As Long dwSizeLow As Long dwSizeHigh As Long LastModifiedTime As FILETIME ExpireTIme As FILETIME LastAccessTime As FILETIME LastSyncTime As FILETIME lpHeaderInfo As Long dwHeaderInfoSize As Long lpszFileExtension As String dwReserved As Long End Type Private Declare Function DeleteUrlCacheEntry Lib "wininet.dll" Alias " ![]() Private Declare Function GetUrlCacheEntryInfo Lib "wininet.dll" Alias "GetUrlCacheEntryInfoA" (ByVal sUrlName As String, lpCacheEntryInfo As Any, lpdwCacheEntryInfoBufferSize As Long) As Long 'для поиска первого элемента кэша: Private Declare Function FindFirstUrlCacheEntry Lib "wininet.dll" Alias "FindFirstUrlCacheEntryA" (ByVal lpszUrlSearchPattern As String, ByVal lpFirstCacheEntryInfo As Long, ByRef lpdwFirstCacheEntryInfoBufferSize As Long) As Long 'для перебора кэша: Private Declare Function FindNextUrlCacheEntry Lib "wininet.dll" Alias "FindNextUrlCacheEntryA" (ByVal hEnumHandle As Long, ByVal lpNextCacheEntryInfo As Long, ByRef lpdwNextCacheEntryInfoBufferSize As Long) As Long Private Sub Command1_Click() If GetUrlCacheEntryInfo("Cookie:w@yandex.ru/", ByVal 0&, 0) = 0 Then ' проверка есть ли такой адрес в кэше? lErr = Err.LastDllError If (lErr = ERROR_INSUFFICIENT_BUFFER) Then MsgBox "URL есть кэше! ![]() Else MsgBox "URL нету кэше. ![]() End If End If If DeleteUrlCacheEntry("Cookie:w@yandex.ru/" ![]() MsgBox "URL Удалена! ![]() Else MsgBox "URL не удалена. ![]() End If End Sub ВЫЯСНИЛ, что куки в винде находятся под таким адресом: Cookie:w@yandex.ru/ и т.п. а в папке C:\Documents and Settings\W\Cookies\ файл выглядит так: w@yandex[2].txt НЕ РЕШИЛ ЕЩЁ: 1.Загадкой до сих пор остаётся как перебрать все кууки(URL), чтобы их поштучно поудалять? Вот с функциями поиска и перебора проблемы.... 2. Ещё не понятно, почему при проверке есть ли такой адрес в кэше используется такая странная штука: Err.LastDllError Дебри... дебри.. есть на форуме грамотные, чтобы готовое растолковать? |
Номер ответа: 13 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Администратор ICQ: 278109632 Вопросов: 42 Ответов: 3949 |
Web-сайт: Профиль | Цитата | #13 | Добавлено: 22.12.07 13:33 |
2. Ещё не понятно, почему при проверке есть ли такой адрес в кэше используется такая странная штука: Err.LastDllError
Ну тут все должно быть понятно. Если библиотека вернула ошибку ERROR_INSUFFICIENT_BUFFER, значит такой URL есть. По поводу поиска.... можно перебирать все файлы кукисов. |
Номер ответа: 14 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Вопросов: 130 Ответов: 6602 |
Профиль | Цитата | #14 | Добавлено: 22.12.07 15:19 |
Да, я заметил:
C:\Documents and Settings\UserName\Cookies А потом начнется * Почему моя прогармма не работает под администратором? * Почему моя программа не работает когда ОС установлена на диск Е? * Почему моя программа не работает под Вистой? * Тупые программисты ОС опять написали глючную ОС |
Номер ответа: 15 Автор ответа: ![]() ![]() ICQ: 162823477 Вопросов: 31 Ответов: 114 |
Профиль | Цитата | #15 | Добавлено: 22.12.07 17:27 |
C:\Documents and Settings\UserName\Cookies
Таким способом немного не правильно пользоватья, это понятно. Так кто посоветует грамотный код поиска URL кууков, типа "Cookie:w@yandex.ru/", используя: FindFirstUrlCacheEntry и FindNextUrlCacheEntry В интернете обыскался.. работающего пока ничего не нашёл. |
Страница: 1 |
|