sqlite – Chrome中加密的Cookie

sqlite – Chrome中加密的Cookie,第1张

概述我目前正在使用C#表单应用程序,需要访问我的电脑上的特定Cookie,我可以做得很好.以下是问题: Google将cookies存储在SQLite中,我已经下载了Sqlite数据库浏览器,以帮助我查看这些值.令我惊讶的是,大约一半的cookie值显示为空(包括我需要的),尽管它们显然不是. 数据库文件位于: C:\Users\%username%\AppData\Local\Google\Chro 我目前正在使用C#表单应用程序,需要访问我的电脑上的特定cookie,我可以做得很好.以下是问题:

Google将cookies存储在sqlite中,我已经下载了sqlite数据库浏览器,以帮助我查看这些值.令我惊讶的是,大约一半的cookie值显示为空(包括我需要的),尽管它们显然不是.

数据库文件位于:

C:\Users\%username%\AppData\Local\Google\Chrome\User Data\Default\cookies

在Chrome上我有一个名为“编辑此cookie”的插件,可以直接修改我所在网站上的cookie.这个插件可以读取这些cookie,并且Web浏览器可以在需要不同请求时通过http解析值,所以它们绝对存在 – 仍然是sqlite浏览器,我的自定义代码都得出结论,特定的值字段是空的.

这是为什么?
什么是以某种方式防止某些应用程序读取该字段?

我遇到同样的问题,下面的代码为任何有兴趣的人提供了一个工作示例.随着DPAPI的出现,所有这些都归功于Scherling.
public class ChromecookieReader{    public IEnumerable<Tuple<string,string>> Readcookies(string hostname)    {        if (hostname == null) throw new ArgumentNullException("hostname");        var dbPath = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) + @"\Google\Chrome\User Data\Default\cookies";        if (!System.IO.file.Exists(dbPath)) throw new System.IO.fileNotFoundException("Cant find cookie store",dbPath); // race condition,but i'll risk it        var connectionString = "Data Source=" + dbPath + ";pooling=false";        using (var conn = new System.Data.sqlite.sqliteConnection(connectionString))        using (var cmd = conn.CreateCommand())        {            var prm = cmd.CreateParameter();            prm.Parametername = "hostname";            prm.Value = hostname;            cmd.Parameters.Add(prm);            cmd.CommandText = "SELECT name,encrypted_value FROM cookies WHERE host_key = @hostname";            conn.open();            using (var reader = cmd.ExecuteReader())            {                while (reader.Read())                {                    var encryptedData = (byte[]) reader[1];                    var decodedData = System.Security.Cryptography.ProtectedData.Unprotect(encryptedData,null,System.Security.Cryptography.DataProtectionScope.CurrentUser);                    var plainText = EnCoding.ASCII.GetString(decodedData); // Looks like ASCII                    yIEld return Tuple.Create(reader.GetString(0),plainText);                }            }            conn.Close();        }    }}
总结

以上是内存溢出为你收集整理的sqlite – Chrome中加密的Cookie全部内容,希望文章能够帮你解决sqlite – Chrome中加密的Cookie所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1160924.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存