Benutzer darf Startseite selbst gestalten - Sicherheit
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
absenden
benutzer
code
editor
einfachste methode
erstellen
fangen
feld
formular
gedanke
http
jemand
klappen
senden
sender
server
sicherheitsproblem
sorgen
url
verhindern
-
Hallo,
ich bin gerade dabei, eine Seite zu programmieren, auf der der Benutzer seine persönliche Seite selbst gestalten darf. Dazu habe ich auf meiner Seite den CKeditor eingebaut. Der Benutzer kann also jeden beliebigen HTML Code auf seine Seite packen. Soweit ich das gelesen habe, bringt das aber auch Sicherheitsprobleme mit sich. Z.B. könnte der Benutzer ein Upload Feld erstellen und somit etwas auf den Server hochladen. Das möchte ich verhindern.
Ich habe schon überlegt, dass ich den String auf solche Tags überprüfe. Also wenn ich z.B. Textbereiche verbieten möchte, hab ich an folgenden Code gedacht:
if(strpos($code,"<textarea>") === true){ echo "Du darfst auf der Seite kein Textbereich einfügen."; }
Das müsste ich dann mit jedem Tag machen, den ich verbieten möchte. Oder fällt da jemandem was anderes ein? Falls ihr meine Idee gut findet, könntet ihr mir ein paar Tags vorschlagen, die ich mit der Variante verbieten sollte? Also ich denke mal von den Formular Tags kann ich alle verbieten. Aber kennt ihr noch mehr Sicherheitsprobleme in diesem Bereich? Wäre froh wenn ihr mir Tipps geben könntet, was ich noch verbieten sollte.
Viele Grüße -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Du solltest Dir eher darüber Gedanken machen, wie es aussieht, wenn der Benutzer PHP-Code auf der Seite ausführen kann. Das darf auf gar keinen Fall möglich sein! Außerdem solltest Du dafür sorgen, dass keine Formulare verarbeitet werden ohne Grund. Denn auch ohne Dein System kann jeder ein Formular an irgendeine Seite senden!
-
tobiworlds schrieb:
Du solltest Dir eher darüber Gedanken machen, wie es aussieht, wenn der Benutzer PHP-Code auf der Seite ausführen kann. Das darf auf gar keinen Fall möglich sein!
Also das mit dem PHP habe ich gerade getestet. Wenn man PHP Code in den Editor eingibt und auf absenden klickt, wird der Code automatisch zu einem Kommentar gemacht. Es wird also <!-- vorne und hinter dran gesetzt.
tobiworlds schrieb:
Außerdem solltest Du dafür sorgen, dass keine Formulare verarbeitet werden ohne Grund. Denn auch ohne Dein System kann jeder ein Formular an irgendeine Seite senden!
Wie meinst du das genau?
-
Du musst dafür sorgen, dass Formulare, die nach dem Absenden beispielsweise etwas löschen, nur dann auch verarbeitet werden, wenn der Sender berechtigt dazu ist. Wenn dies der Fall ist, kannst Du Formulare ruhig erlauben, da sie ungefährlich sind. Alles, was Du verhindern willst, lässt sich sowieso anders bewerkstelligen. Die einfachste Methode ist es da wohl, auf einer anderen Seite ein Formular einzubinden, dass an Deine Seite abgesendet wird. Und das kannst Du ohnehin nicht ändern.
-
tobiworlds schrieb:
Du musst dafür sorgen, dass Formulare, die nach dem Absenden beispielsweise etwas löschen, nur dann auch verarbeitet werden, wenn der Sender berechtigt dazu ist. Wenn dies der Fall ist, kannst Du Formulare ruhig erlauben, da sie ungefährlich sind. Alles, was Du verhindern willst, lässt sich sowieso anders bewerkstelligen. Die einfachste Methode ist es da wohl, auf einer anderen Seite ein Formular einzubinden, dass an Deine Seite abgesendet wird. Und das kannst Du ohnehin nicht ändern.
Sorry aber das versteh ich immer noch nicht ganz genau. Wie macht man das denn, dass jemand auf einer Seite unberechtigt dazu ist, Formulare abzusenden?
Und hat noch jemand andere Vorschläge? -
Fangen wir anders an: wovor hast Du denn speziell Angst, das jemand anstellen könnte, wenn er Formulare auf seiner Startseite erstellen kann?
-
tobiworlds schrieb:
Fangen wir anders an: wovor hast Du denn speziell Angst, das jemand anstellen könnte, wenn er Formulare auf seiner Startseite erstellen kann?
Ich habe schon mal davon gehört, dass man ein upload Feld erstellen kann und dann Dateien auf den Server laden kann. Wobei ich auch nicht weiß, wie das ohne PHP klappen sollte. Und sonst weiß ich nicht, wo noch Sicherheitsprobleme sein könnten, deswegen habe ich diesen Thread eröffnet. -
ultimate-bravery schrieb:
Ich habe schon mal davon gehört, dass man ein upload Feld erstellen kann und dann Dateien auf den Server laden kann. Wobei ich auch nicht weiß, wie das ohne PHP klappen sollte. Und sonst weiß ich nicht, wo noch Sicherheitsprobleme sein könnten, deswegen habe ich diesen Thread eröffnet.
XSS und SQL-Injection sind die Größen Gefahren, wobei XSS auch über HTML möglich ist! Deshalb verwenden viele Webseiten auch keine HTML-Editoren, sondern BBCode-Editoren wie der in diesem Forum. -
Also ich habe gelesen, dass es besser ist, eine Whitelist anzulegen, als eine Blacklist anzulegen, um XSS zu verhindern. Dazu habe ich folgenden Code gefunden, der den eingegeben Code überprüft:
$code_neu = strip_tags($code,'<p><strong>');
So werden alle Tags die nicht in der Klammer stehen entfernt. Bei diesem Beispiel wären also nur die Tags <p> und <strong> erlaubt. Was meint ihr dazu? Ist das schon eine gute Möglichkeit, um XSS zu verhindern? Oder meint ihr das reicht nicht?
-
Es ist vorallem wegen Javascript schlecht, man damit deine gesamte Seite umprogrammieren könnte, also gib besser anderen Usern mit .htaccess Einschränkungen
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage