Maßnahmen XSS-Schwachstelle zu verhindern (wie Twitter ist ein wenige Tage vor)

StackOverflow https://stackoverflow.com/questions/816224

  •  03-07-2019
  •  | 
  •  

Frage

Auch berühmte Sites wie Twitter leiden unter XSS-Schwachstelle, was sollen wir tun, um diese Art von Angriff zu verhindern?

War es hilfreich?

Lösung

Die # 1, was Sie tun können, um Ihre Cookies gesetzt ist nur dann auf HTTP ..., die zumindest schützt vor Session-Cookie-Hijacking. Wie jemand stehlen Ihre Cookie, wenn Sie wahrscheinlich Admin Ihrer eigenen Website sind.

Der Rest kommt auf alle Benutzereingaben zu validieren.

  • RULE # 0 - Stecken nicht vertrauenswürdige Daten Außer in erlaubt Standorte
  • RULE # 1 - HTML Flucht vor dem Einsetzen nicht vertrauenswürdige Daten in HTML-Element-Inhalt
  • RULE # 2 - Attribut vor dem Einsetzen nicht vertrauenswürdige Daten in HTML Gemeinsamer Flucht Attribute
  • RULE # 3 - JavaScript Flucht vor dem Einsetzen nicht vertrauenswürdige Daten in HTML JavaScript Datenwerte
  • RULE # 4 - CSS Flucht vor dem Einsetzen nicht vertrauenswürdige Daten in HTML-Style-Eigenschaft Werte
  • RULE # 5 - URL Flucht vor dem Einsetzen nicht vertrauenswürdige Daten in HTML-URL Attribute

Sehr lange Thema ausführlich diskutiert hier:

http://www.owasp.org/index.php/XSS_ ( Cross_Site_Scripting) _Prevention_Cheat_Sheet

http://www.owasp.org/index.php/Cross_site_scripting

XSS ist nur eine von vielen Exploits und jeder Web-Entwickler sollten die Top 10 OWASP Auswendig imho

lernen

http://www.owasp.org/index.php/Top_10_2007

Andere Tipps

Wie Sie SQL-Injection ein Nicht-Problem durch die Verwendung von vorbereiteten Aussagen machen können, können Sie XSS nicht-Ausgabe machen von Template-Engine (DOM Serializer) verwenden, die ähnliche Sache tut.

Gestalten Sie Ihre Anwendung so, dass alle Ausgaben über Template-Engine geht. Machen Sie, dass HTML-Template-Engine-Fluchten alle Daten standardmäßig. Auf diese Weise werden Sie System, das standardmäßig sicher ist und beruht nicht auf den Menschen (und den Rest des großen Systems) fleißig von HTML zu entkommen.

Ich weiß nicht, was Sie Ihren Code schreiben mit, aber wenn Ihre Verwendung asp.net, Sie sind teilweise überdacht. asp.net hat, was sie Anforderungsvalidierung rufen, dass, wenn aktiviert, es schädliches Skript verhindern über Benutzereingabe eingeführt werden.

Aber manchmal werden Sie irgendeine Art von Texteditor wie die erlauben, müssen Sie in dieser Frage eingegeben haben. In diesem Fall werden Sie teilweise deaktivieren Anforderungsvalidierung haben einig „Rich-Text“ html zu ermöglichen Eingabe durch den Endverbraucher zu sein. In diesem Fall haben Sie eine Art von weißen Liste Filtermechanismus zu bauen.

FYI, ich weiß nicht, über andere, aber Microsft hat Bibliothek mit dem Namen Anti-Xss.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top