Macgryver

Security error

Dec 11th, 2016
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
HTML 1.20 KB | None | 0 0
  1. <!doctype html>
  2. <html>
  3. <head><meta charset="UTF-8"><title>localStorage saving</title>
  4.     <script>
  5.         var listen = window.addEventListener;
  6.         (listen||window.attachEvent)((listen ?'':'on') +'message', function(ev){
  7.             var d = typeof ev.data =='string' && ev.data[0] =='{' ? JSON.parse(ev.data) : ev.data
  8.             if(!d.do) return;
  9.             var tok = d.tok
  10.                 ,key = d.key;
  11.             switch(d.do){
  12.                 case 'set':
  13.                     var prev = localStorage[key];
  14.                     if(d.val !==undefined)
  15.                         localStorage[key] = JSON.stringify(d.val);
  16.                     else
  17.                         localStorage.removeItem(key);
  18.                     break;
  19.                 case 'get':
  20.                     prev = localStorage[key];
  21.                     prev = prev === undefined || typeof prev =='string'&& prev[0] !='{'? prev : JSON.parse(prev); break
  22.                 case 'remove':
  23.                     prev = localStorage[key];
  24.                     if(prev !==undefined)
  25.                         localStorage.removeItem(key);
  26.             }
  27.             console.log('[io2]', tok, 'prev=', prev);
  28.             ev.source.postMessage(JSON.stringify(prev !==undefined ? {tok: tok, prev: prev} : {tok: tok, undef:1}), ev.origin);
  29.         },!1);
  30.     </script>
  31. </head>
  32. <body>
  33.     This page supports saving of localStorage (on the domain github.io) for sites which erase it on its own domain (such as google.*, facebook.com etc.).
  34. </body>
  35. </html>
Add Comment
Please, Sign In to add comment