Есть ли у Google Chrome какой-то первичный ключ в базе данных cookie?

673
ST3

Я пишу какой-нибудь сканер для файлов cookie Google Chrome, хранящихся в базе данных SQLite . Он также имеет возможность удалить куки, однако я не нашел ни одного поля ID. Самое похожее то creation_utc, что у меня мало информации об этом, но я узнал, что это какая-то временная метка. Я хотел бы знать, является ли это значение уникальным или нет.

Мне это нужно, потому что при удалении некоторых файлов cookie я использую несколько полей, и это не оптимальный способ сделать это. Если creation_utcон уникален, удаление куки займет меньше времени.

1

3 ответа на вопрос

1
ST3

I have found an answer. I used query: PRAGMA table_info(cookies) it gave result all columns, their types and etc. One of the attributes was called pk (primary key). All columns had set to 0, but creation_utc is set to 1, so it is primary key.

Технически это правильно; `.schema Cookies` говорит вам то же самое. Weird. Arjan 11 лет назад 0
1
Arjan

By design, each combination of domain and path can only have one cookie with a specific name. (If a server sends a new cookie, the old one is replaced.)

So even when the database has another primary key (like you're suggesting in your own answer), I still feel the domain and path should be the real primary key.

Я использовал [this] (http://coderstoolbox.net/unixtimestamp/) конвертер меток времени и обнаружил, что значение в базе данных не может быть преобразовано в формат времени, потому что он слишком большой. Поэтому я думаю, что Google Chrome использует некоторую продвинутую метку времени и считает миллисекунды, что позволяет использовать его в качестве первичного ключа. ST3 11 лет назад 0
0
gronostaj

I guess creation_utc = UTC when the cookie was created. So no, it doesn't guarantee uniqueness.

If you just want to delete cookies for a single site, you can use this answer.

Похожие вопросы