Cross Site Scripting, was muss man wirklich beachten?
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
angreifer
auftauchen
befehl
bug
design
fremden code
gedanke
gerade macht
letzten frage
machen
maskierung
nachricht
platzhalter
ren
server
statement
variablen posten
verbindung
werten macht
zeichen
-
Wenn man gerade z.B. an einem G?stebuch programmiert, dann muss man sich Gedanken machen, das die User dann da keinen HTML oder Javascript Code reinbrigen.
Dies kann man ganz einfach vermeiden, in dem man
$_POST['nachricht']=str_replace('<','& lt ;',$_POST['nachricht']);
$_POST['nachricht']=str_replace('>','& gt ;',$_POST['nachricht']);
mit der Nachricht macht.
Da Alle Befehlssprachen HTML als Basis haben (m?ssen in HTML eingebunden werden) , und HTML Befehle nur mit < und > funktionieren, m?sste es doch durch die obrige Ma?nahme 100% M?glich sein, Fremden Code zu neutralisieren.
Oder gibt es doch eine M?glichkeit fremden Code ohne < und > auzuf?hren?
Gibt es da mit PHP oder MySQL eine Sicherheitsl?cke ? -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
sicherheitsl?cken sind ?berall m?glich aber ohne < und > ist es nicht m?glich html oder js zu verwenden
aber es gibt immer einen weg eine Seite anzugreifen (hei?t nicht das ich wei? wie man das gerade macht). Aber z.B. ?ber sql-injuktionen oder durch autoglobals. Oder gleich ?ber den Server, wo immer wieder sicherheitsl?cken auftauchen. (Sonst g?be es ja keine Hacker) -
es geht mir nur darum, welche Zeichen ich am besten neutralisieren sollte.
-
also dadurch hast du ja die gr??te sicherheitsl?cke geschlossen, es k?nnen aber user z.b. variablen posten
$passwort dann wird die variable, falls sie existiert ausgegeben falls nich, versucht der angreifer noch andere variablen ...
wobei ich mir dabei nich allzu sicher bin, aber theoretisch m?sste es so sein
des weiteren kann man ja auch platzhalter posten, z.b. wenn du nen template benutzt [title]
der bug funtzt auch auf lima, ich verate ma vorsichts halber nich wie sie heissen :P, aber einfach ma shandris gb angucken
es k?nnen nat?rlich auch riesige codes gepostet werden, die dein ganzes design zerst?ren und so, aber richtige sicherheitsl?cken sind das ja nicht
zu deiner letzten frage:
nimm daf?r am besten
$_POST['nachricht'] = htmlspecialchars($_POST['nachricht']);
damit werden alle html zeichen umge?ndert, darunter sind glaub ich auch & etc. -
bladehunter schrieb:
es geht mir nur darum, welche Zeichen ich am besten neutralisieren sollte.
Mit < und > hast du schon das meiste erschlagen. Dann musst du allerdings noch folgendes ?berpr?fen, je nachdem, was dein Skript mit den Werten macht:
%3c und %3e (sind die Hex-Werte f?r < und >)
%253c und %253e (%25 ist der Hex-Wert f?r %)
Ausserdem gibt es noch die bereits erw?hnt M?glichkeit von SQL-Injections. Dabei wird durch Maskierung von Sonderzeichen oder durch Zuf?gen von SQL-Statements in nicht ?berpr?ften Werten in einem SQL-Befehl anderes gemacht, als man eigentlich wollte. SQL-Injection ist ein relativ trickreiches Thema und daher schwer zu erkl?ren. Aber MySQL ist in Verbindung mit PHP ist f?r SQL-Injections nicht so anf?llig wie z.B. Oracle oder MS-SQL. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage