PHP: Maximale Sicherheit für Websiten

P

PHP-Simon

Gast
Hallo,

ich habe eine Website, die auf PHP und MySQL aufgebaut ist.

Ich verwende bisher die folgenden Befehle:

strip_tags() bei benutzereingaben
mysql_real_escape_string() bei eingaben, die in eine SQL abfrage einfliessen
stripslashes(), um die backslashes von mysql_real_escape_string zu entfernen.

Gibt es sonst noch Befehle, die zur SIcherheit beitragen?
 
Hallo,

dies kann man nicht so allgemein Beantworten.
Sollen Benutzereingaben in eine Datenbank geschrieben werden, so ist es natürlich immer wichtig, diese vorher entsprechend zu maskieren.
Auch für strip_tags() gibt es einige sinnvolle Anwendungsgebiete.

Wie jetzt letztendlich Daten sinvoll überprüft werden könnten/sollten um XSS, SQL-Injections oder Ausgabe-Manipulationen zu vermeiden, ist jedoch immer von der genauen Anwendung abhängig.
Indirekt kann eigentlich jede Funktion irgendwie dazu verwendet werden, sicherheitsrelevante "Prüfungen"/"Aufgaben" durchzuführen.

MfG mh1001
 
Nicht nur wenn die Benutzereingaben in die Datenbank geschrieben werden - auch wenn sie wieder in den Quellcode der Seite gelangen. Sonst kann man einen speziell präparierten Link erstellen, der z.B. eine Sicherheitslücke im Browser nutzt.

Aber generell kann man nur sagen: All User Input Is Evil
 
wichtig ist in jedem fall eingaben auf "sinnvollität" zu testen - also eingaben per regular expressions auf ihren inhalt zu überprüfen.
abgesehen von volltext gibt es eigentlich für alle benutzereingaben feste regeln. diese sollten in jedemfall überprüft werden, besonders wenn sie spähter in einem sql query landen sollen.

denn auch ohen sql injection lässt sich schaden anrichten. z.b. hohe oder absichtlich falsche werte lassen sich wunderbar für DOS attacken benutzen.
 
generell sollte man auch nur da texteingaben erlauben, wo es notwendig ist. wenn nur zahlen benötigt werden (beispielsweise für ne threadid) sollte man auch explizit nur zahlen als gültigen wert erlauben. wenn der wert dann nicht numerisch ist, dann braucht man den auch garnicht weiterzuverarbeiten und reduziert die möglkichkeiten ein loch zu übersehen deutlich.
 
Siberian..Husky schrieb:
denn auch ohen sql injection lässt sich schaden anrichten. z.b. hohe oder absichtlich falsche werte lassen sich wunderbar für DOS attacken benutzen.


und wie schütz ich mich davor?
 
in dem du zu hohe oder falsche werte aussortierst :P.


bei einem forum wie diesem, bei dem man z.b. einstellen kann wieviele posts pro seite angezeigt werden sollen, sollte man beispielsweise auch einen höchstwert festlegen, damit die datenbank bei großen threads nicht so gestresst werden kann.


was zutun ist hängt also von deinem script ab. grenze einfach die möglichen eingaben so genau wie möglich ein. zur überprüfung sind wiegesagt die regular expressions gedacht.

eine funktion die man einfach auf alle eingaben anwendet und hinterher ist das script sicher gibts leider nicht ;).
 
Siberian..Husky schrieb:
in dem du zu hohe oder falsche werte aussortierst :P.


bei einem forum wie diesem, bei dem man z.b. einstellen kann wieviele posts pro seite angezeigt werden sollen, sollte man beispielsweise auch einen höchstwert festlegen, damit die datenbank bei großen threads nicht so gestresst werden kann.


was zutun ist hängt also von deinem script ab. grenze einfach die möglichen eingaben so genau wie möglich ein. zur überprüfung sind wiegesagt die regular expressions gedacht.

eine funktion die man einfach auf alle eingaben anwendet und hinterher ist das script sicher gibts leider nicht ;).

schade :-D

danke für eure tipps
 
Zurück
Oben