Bogomil Shopov

Human. Artist. Hacker. I care about free and open-source software(F/LOSS), cybersecurity, ethical design, privacy, and technology. 20+ experience in technology. 40+ in being human. I encourage people to become better humans with heavy metal and technologies. I also promote technologies to be considerate of humans. Let's see how it goes!

Mozilla / Open Technologies · May 28, 2010

XAuth – Mozilla webappstore.sqlite

If you are wondering where Firefox stores the token from XAuth (all localStorage data), the answer is in webappstore.sqlite in your profile folder. The main idea of the XAuth is that the declared token will be accessible only from the domain and you don’t have the opportunity to see what exacly has been saved in your local storage.

I am an Explorer

I am always suspicious when I have to use an “Open Technology” from Google or other not so open vendors and I would like to see what EXACTLY is stored in My Computer.


So let’s explore the webappstore.sqlite. I need this Addon for that. You can download it from here.

It looks very usable:
SQLite Manager

Just Click on Database > Connect Database and choose webappstore.sqlite from your profile folder.
After that choose Tables from the sidebar tree, and Browse and Search from the main Window.


Let’s see what is inside about XAuth:

scope: gro.htuax.:http:80 // this information will be accessible from only, using http protocol only and via port 80 only
value: {“token”:”1″,”expire”:1275110205930,”extend”:[“”]}

Everything looks fine for now !

Another example
if you want to see, what is stored from your domain in your local storage, you can use this script for that:

<body onLoad="doShowAll()">
<script language="javascript">
function doShowAll() {
var key = "";
var showme = "<tr><td>Local name</td><td>Local value</td></tr>\n";
var i=0;
for (i=0; i<=localStorage.length-1; i++) {
key = localStorage.key(i);
showme += "<tr><td>"+key+"</td>\n<td>"+localStorage.getItem(key)+"</td></tr>\n";
if (showme == "<tr><td>Local name</td><td>Local  value</td></tr>\n"") {
showme += "<tr><td><i>empty</i></td>\n<td><i>empty</i></td></tr>\n";
document.getElementById('showme').innerHTML = showme;

<table id='showme'></table>