Страница: 1 |
Страница: 1 |
Вопрос: Как удалить или получить доступ к cookie-файлам?
Добавлено: 15.12.07 19:15
Автор вопроса: Apache2 | ICQ: 162823477
Смысл такой, очень понадобилась процедура, для роботы с cookie-файлами.. Internet Explorer-а.
Кто подскажет как программно можно удалять cookie, читать их, создавать :)
Ответы
Всего ответов: 15
Номер ответа: 1
Автор ответа:
Администратор
ICQ: 278109632
Вопросов: 42
Ответов: 3949
Web-сайт:
Профиль | | #1
Добавлено: 15.12.07 21:04
ну у эксплорера есть стандартная папка с кукисами для каждого юзера. там все файлы. вот и читай сколько влезет
Номер ответа: 2
Автор ответа:
Apache2
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
Автор ответа:
Apache2
ICQ: 162823477
Вопросов: 31
Ответов: 114
Профиль | | #4
Добавлено: 16.12.07 00:56
Я не хакер, поэтому ищу официальный способ
и по-моему в iexplore.exe нету ничего.. всё в библиотеках, количество которых несколько тыщь..
Люди, ну неужели нету компетентных людей?
Может какой-нить жава-vbs скрипт есть?
или проникнуть в объектную модель IE и как-то добраться официальным способом до куков.. этих злосчастных.
Номер ответа: 5
Автор ответа:
Retupa
Вопросов: 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 "eleteUrlCacheEntryA" (ByVal lpszUrlName As String) As Long
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
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #6
Добавлено: 16.12.07 06:01
http://www.google.ru/search?hl=ru&q=iecv&lr=
Ну а дальше idag
Номер ответа: 7
Автор ответа:
Apache2
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
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #8
Добавлено: 17.12.07 20:45
Ну воопервых не Java, а JavaScript
Во-вторых тогда уже не document.write, а eval
В-третьих я бы советовал таки прислушаться к советам RetupЫ
Номер ответа: 9
Автор ответа:
Apache2
ICQ: 162823477
Вопросов: 31
Ответов: 114
Профиль | | #9
Добавлено: 18.12.07 15:24
Ну да.. Java-script не помогает..
т.к. не может удалить куки созданные другими сайтами.
подскажите какой код, что ли на vb.. а то не знаю даже с чего начать.
Номер ответа: 10
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #10
Добавлено: 20.12.07 01:19
Номер ответа: 11
Автор ответа:
Apache2
ICQ: 162823477
Вопросов: 31
Ответов: 114
Профиль | | #11
Добавлено: 22.12.07 12:02
ну База данных.. типа реестра включая ссылки и на временные файлы.
Так как грамотно удалить?
Номер ответа: 12
Автор ответа:
Apache2
ICQ: 162823477
Вопросов: 31
Ответов: 114
Профиль | | #12
Добавлено: 22.12.07 13:14
Немного поразмыслив, почитав многие доки, уже близок к истине, научился удалять и проверять есть ли такой куукc в кэше:
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 "eleteUrlCacheEntryA" (ByVal lpszUrlName As String) As Long
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/" = 1 Then ' удаление из кэша адреса!
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
Ну тут все должно быть понятно. Если библиотека вернула ошибку ERROR_INSUFFICIENT_BUFFER, значит такой URL есть.
По поводу поиска.... можно перебирать все файлы кукисов.
Номер ответа: 14
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #14
Добавлено: 22.12.07 15:19
C:\Documents and Settings\UserName\Cookies
А потом начнется
* Почему моя прогармма не работает под администратором?
* Почему моя программа не работает когда ОС установлена на диск Е?
* Почему моя программа не работает под Вистой?
* Тупые программисты ОС опять написали глючную ОС
Номер ответа: 15
Автор ответа:
Apache2
ICQ: 162823477
Вопросов: 31
Ответов: 114
Профиль | | #15
Добавлено: 22.12.07 17:27
C:\Documents and Settings\UserName\Cookies
Таким способом немного не правильно пользоватья, это понятно.
Так кто посоветует грамотный код поиска URL кууков, типа "Cookie:w@yandex.ru/", используя:
FindFirstUrlCacheEntry и FindNextUrlCacheEntry
В интернете обыскался.. работающего пока ничего не нашёл.