2013-04-28 10 views
8

Ich möchte, dass mein Dienst eine solche Funktion hat: Der Autor kann die Seite vollständig anpassen, aber die Cookies der Benutzer nicht stehlen.Benutzer-editierbarer HTML-XSS-Schutz (tumblr like)

Tumblr hatte einige Probleme mit dem, aber gelöst sie erfolgreich http://www.riyazwalikar.com/2012/07/stored-persistent-xss-on-tumblr.html

Also muss ich die Lösung mit

  1. keine Mäßigung
  2. vollen Zugriff auf HTML-Seiten für die Nutzer-Autoren, don will keine Whitelist-Filterung und Templating-Sprache (so funktioniert es jetzt :()
  3. keine Gelegenheit, sich gegenseitig die Cookies zu stehlen (auf Seiten anderer Autoren)
  4. zentralisierte Authentifizierung db
  5. wünschenswert: ohne Authentifizierung auf jedem Autoren Seite

Wie ich verstehe tumblr:

  1. getrennte Domänen, ohne Zugriff auf Cookies von einander
  2. Benutzer sind immer noch authentifiziert auf jede Subdomain (WIE ??? www.tumblr.com js hat Zugriff auf Hauptsitzungscookies? Ist das sicher?)
  3. Auth Cookies sollte Httponly sein? ..

Kann ich sicher und komfortabel für den Benutzer Lösung? Ist Cookie-Diebstahl das Hauptproblem des vollen Zugriffs auf HTML?

Antwort

3

Ich möchte, dass mein Dienst eine solche Funktion hat: Der Autor kann die Seite vollständig anpassen, aber kann die Cookies der Nutzer nicht stehlen.

Also ich denke, dass Sie Javascript für sie aktivieren möchten, aber Sie nicht zulassen, Cookies zu manipulieren. Dies sollte einfach sein: legen Sie sie kurz vor dem Laden der Seite des Benutzers:

if (document.__defineGetter__) 
{  
    document.__defineGetter__("cookie", function() { return ""; }); 
    document.__defineSetter__("cookie", function() { }); 
} 
else // IE 
{ 
    Object.defineProperty(document, "cookie", 
    { 
     get: function() { return ""; }, 
     set: function() { return true; }, 
    }); 
} 

Benutzer sind immer noch auf jedem Sub-Domain authentifiziert (WIE ??? www.tumblr.com js hat Zugang zu den wichtigsten Session-Cookies ? Ist das sicher?)

Dies ist auch einfach - Cookies unterstützt dies. Seine domain Attribut:

Set-Cookie: name=value; path=/; domain=.example.com 

Auth Cookies sollten Httponly sein ..

Natürlich - sie für die bessere Sicherheit sein sollte?.