|
You last visited: Today at 02:10
Advertisement
XSS in BBCodes verhindern
Discussion on XSS in BBCodes verhindern within the Web Development forum part of the Coders Den category.
02/19/2015, 17:17
|
#1
|
elite*gold: 25
Join Date: Sep 2011
Posts: 5,536
Received Thanks: 1,266
|
XSS in BBCodes verhindern
Hey Leute,
ich bin aktuell ein wenig am verzweifeln, es geht um eine XSS in BBCodes.
Und zwar hat einer meiner User mich auf folgende Lücke hingewiesen:
Zum parsen der Codes nutze ich folgendes:
Ich habe nun echt einige Lösungen gefunden, aber die beruhen meist darauf Befehle einfach vorher raus zu filtern (Wo ich das Problem sehe das ich wohl kaum alle raus filtern kann) oder einfach folgende Zeichen raus filter:
Quote:
Das Problem ist, bei folgendem Code sind diese Zeichen gar nicht erst vorhanden:
Code:
[URL="javascript:alert(document.cookie);"]javascript:alert(document.cookie);[/URL]
Meine allgemein Idee wäre, irgendwie dem Browser zu sagen das ab dieser stelle kein Javascript geparsed werden soll, jedoch wüsste ich nicht das es so eine Möglichkeit gibt, und wenn, wie weit ist das ganze abwärts kompatibel?
Mir ist auch aufgefallen das bei epvp das bspw. ebenfalls einfach nicht ausgeführt wird:
Ich hoffe ihr könnte mir irgendwie weiter helfen.
Gruß,
Padrio (<(`-´)>)
|
|
|
02/19/2015, 17:31
|
#2
|
elite*gold: 22
Join Date: Nov 2009
Posts: 1,552
Received Thanks: 361
|
Quote:
Originally Posted by <(`-´)>
Hey Leute,
ich bin aktuell ein wenig am verzweifeln, es geht um eine XSS in BBCodes.
Und zwar hat einer meiner User mich auf folgende Lücke hingewiesen:
Zum parsen der Codes nutze ich folgendes:
Ich habe nun echt einige Lösungen gefunden, aber die beruhen meist darauf Befehle einfach vorher raus zu filtern (Wo ich das Problem sehe das ich wohl kaum alle raus filtern kann) oder einfach folgende Zeichen raus filter:
Das Problem ist, bei folgendem Code sind diese Zeichen gar nicht erst vorhanden:
Code:
[URL="javascript:alert(document.cookie);"]javascript:alert(document.cookie);[/URL]
Meine allgemein Idee wäre, irgendwie dem Browser zu sagen das ab dieser stelle kein Javascript geparsed werden soll, jedoch wüsste ich nicht das es so eine Möglichkeit gibt, und wenn, wie weit ist das ganze abwärts kompatibel?
Mir ist auch aufgefallen das bei epvp das bspw. ebenfalls einfach nicht ausgeführt wird:
Ich hoffe ihr könnte mir irgendwie weiter helfen.
Gruß,
Padrio (<(`-´)>)
|
Das du dir die Cookies nicht anzeigen lassen kannst, ist ein Schutz vor Javascript. Durch den Cookie paramater httponly.
PHP Code:
$secure = true; // Damit wird verhindert, dass JavaScript auf die session id zugreifen kann. $httponly = true; // Zwingt die Sessions nur Cookies zu benutzen. if (ini_set('session.use_only_cookies', 1) === FALSE) { echo 'Nope unsicher, stirb.'; exit(); } // Holt Cookie-Parameter. $cookieParams = session_get_cookie_params(); session_set_cookie_params($cookieParams["lifetime"], $cookieParams["path"], $cookieParams["domain"], $secure, $httponly);
|
|
|
02/19/2015, 17:37
|
#3
|
elite*gold: 25
Join Date: Sep 2011
Posts: 5,536
Received Thanks: 1,266
|
Ich nutze Laravel als Famework, und werde grade ehrlich gesagt aus deinem Code nicht sehr viel schlauer.
Es geht nicht explizit um Cookies, sondern das ich im allgemeinen Cross-Site Scripting verhindern will.
|
|
|
02/19/2015, 17:53
|
#4
|
elite*gold: 22
Join Date: Nov 2009
Posts: 1,552
Received Thanks: 361
|
Quote:
Originally Posted by <(`-´)>
Ich nutze Laravel als Famework, und werde grade ehrlich gesagt aus deinem Code nicht sehr viel schlauer.
Es geht nicht explizit um Cookies, sondern das ich im allgemeinen Cross-Site Scripting verhindern will.
|
Das trägt zum XSS SchutzBei. Im Falle, dass es dem Angreifer gelingt ist deine Session ID sicher.
Benutze bei jeder Benutzereingabe einen  .
Gib den Input am besten immer mit htmlspecialchars() oder noch extremer htmlentities() aus, dann werden alle Zeichen escaped.
|
|
|
02/19/2015, 18:04
|
#5
|
elite*gold: 25
Join Date: Sep 2011
Posts: 5,536
Received Thanks: 1,266
|
Liest du eigentlich überhaupt was ich schreibe?
Quote:
Originally Posted by xEncounter
Das trägt zum XSS SchutzBei. Im Falle, dass es dem Angreifer gelingt ist deine Session ID sicher.
|
Gerne, schau ich mal wie genau man das jetzt in Laravel implementieren kann.
Quote:
Originally Posted by xEncounter
Benutze bei jeder Benutzereingabe einen  .
|
Mach ich bei Laravel über die Rules - keine Sorge; Ich bin nicht komplett bescheuert was das ganze Thema angeht.
Quote:
Originally Posted by xEncounter
Gib den Input am besten immer mit htmlspecialchars() oder noch extremer htmlentities() aus, dann werden alle Zeichen escaped.
|
Escaped trotzdem nicht den obigen Code.
|
|
|
02/20/2015, 07:59
|
#6
|
elite*gold: 0
Join Date: Feb 2015
Posts: 141
Received Thanks: 32
|
Also ich sehe bei
Code:
[URL="javascript:alert(document.cookie);"]javascript:alert(document.cookie);[/URL]
schon 2x das "
|
|
|
02/20/2015, 09:58
|
#7
|
elite*gold: 0
Join Date: Jan 2009
Posts: 731
Received Thanks: 233
|
du koenntest den bbcode parser nutzen, der faengt das meines wissens alles ab.
zf2 module
|
|
|
02/20/2015, 17:02
|
#8
|
elite*gold: 22
Join Date: Nov 2009
Posts: 1,552
Received Thanks: 361
|
Quote:
Originally Posted by Asuna.
Also ich sehe bei
Code:
[URL="javascript:alert(document.cookie);"]javascript:alert(document.cookie);[/URL]
schon 2x das "
|
Ich denke das liegt daran wie der den BBCode liest, wenn htmlspecialchars nicht escaped...
Quote:
Folgende Umwandlungen werden vorgenommen:
'&' (Ampersand/kaufmännisches Und) wird zu '&'.
'"' (doppeltes Anführungszeichen) wird zu '"', wenn ENT_NOQUOTES nicht gesetzt ist.
"'" (einfaches Anführungszeichen) wird nur zu ''', wenn ENT_QUOTES gesetzt ist.
'<' (kleiner als) wird zu '<'
'>' (größer als) wird zu '>'
|
Anders kann ich mir das nicht erklären.
|
|
|
02/20/2015, 17:35
|
#9
|
elite*gold: 25
Join Date: Sep 2011
Posts: 5,536
Received Thanks: 1,266
|
Quote:
Originally Posted by KoKsPfLaNzE
du koenntest den bbcode parser nutzen, der faengt das meines wissens alles ab.
zf2 module

|
Was auch immer mir das zf2 module bringen soll 
Ich erstell daraus demnächst ein Laravel Package und schau dann weiter obs funktioniert, danke schonmal 
Hast ja anscheinend schonmal das ganze für Composer ported, danke dafür, werde ich als Grundlage nutzen.
|
|
|
02/21/2015, 01:20
|
#10
|
elite*gold: 0
Join Date: Jan 2009
Posts: 731
Received Thanks: 233
|
das zf2 module sollte als bsp dienen, wusste net ob das bei laravel irgendwie verwenden kannst.
|
|
|
 |
Similar Threads
|
[Suggestion] Markdown als Alternative zu BBCodes
06/02/2014 - Suggestions & Feedback - 8 Replies
Ich fände es mal schön,wenn Markdown Support hinzugefügt würde.
Markdown ermöglicht es anstatt BBCodes und Bildern einen Thread/Post übersichtlich zu erstellen.
Wie ist eure Meinung darüber
|
BBCodes for dummies
10/16/2013 - CO2 PServer Guides & Releases - 6 Replies
im not after reputation or thanks or anything, im just sick of people who can't use BBCodes
for a full list and definition HERE
if you still can't understand here is more simple explanation
BBCodes are like html tags, you start it as '' and end it with '' without the quotes, and add the value (which is the text you want to edit or link or picture or anything) between them
this text is align to left by default
|
BBcodes und so nä!
07/08/2007 - Main - 3 Replies
Hallo familie!1
kann mal mir wer sagen wie das mit den animierten bildern in der signatur geht? zb das mit dem roflvator und so das is rattengeil, will Ich aber nich kopieren is ja gemein! währe Net wenn ihr mich aufkären könnt sufu hat nix ergeben!!
text2schild.php?smilienummer=1&text=Hab euch lieb!1' border='0' alt='Hab euch lieb!1' />
|
All times are GMT +2. The time now is 02:10.
|
|