Einfach SQL-Injektionen verhindert?

  • Themenstarter Themenstarter SilverVegeto
  • Beginndatum Beginndatum
S

SilverVegeto

Morgen,
bin gerade dabei meine Website fertig zustellen und da möchte ich natürlich auch schauen das sie recht sicher ist.
Meine Frage nun zu SQL-Injektionen:
Da ich meine Seiteninhalte include, Frage ich mich ob es nicht ausreichen würde die Adressezeile/URL vorher auf unerlaubte Zeichen zu prüfen da bei mir eh nur Zahlen, Buchstaben, =, &, $, :, ., / vorkommen.
 
Ich grüße Dich!

Löblich, dass Du Deine Website auf Schwachstellen abklopfe willst. Das ist noch immer die Achillesferse vieler Web-Anwendungen.

SQL Injections ist ein guter Anfang, allerdings gibt es noch andere Dinge zu prüfen, je nachdem was Deine Seite alles für "Features" anbietet. Wenn Du Dich weiter mit dem Thema "Sicherheit" beschäftigen willst, kann ich Dir nur empfehlen, die verschiedenen Möglichkeiten, wie man Seiten/Server angreifen kann, zu betrachten. Im Netz findest Du hier viele Beispiele und wie man sie größtenteils abwehren kann. Ein Buch, dass viele Probleme ganz gut zusammen fasst (meine Meinung) ist PHP Sicherheit (http://www.php-sicherheit.de).

Zu Deinem Problem: Ja, es sollte generell Pflicht sein zu prüfen was man erhält. Wenn Du eine Zahl (z.B. eine ID) erwartest, solltest Du auch nur diese Werte zulassen - keine Buchstaben oder Zeichen.

Gleiches gilt natürlich für Formulare, in denen man auch wunderschön SQL Injections platzieren kann. Also generell alles worauf der Benutzer Einfluss haben kann (URL, Formulareingaben). Man kann sogar noch weiter gehen und SESSIONs absichern - aber einen 100% Schutz wirst Du nie finden, aber sehr wohl Angreifern schnell die Lust rauben.

Die "Überprüfung" solltest Du immer als erstes machen und zwar nicht nur Nutzereingaben via $_POST und $_GET, sondern auch beim Zusammenspiel von Methoden und Objekten.
 
Zuletzt bearbeitet:
@deostift: Vielen, vielen Dank für diese Ausführliche Erklärung!!
Jetzt habe ich schonmal gute Ansatzpunkte - werde mir dieses Buch aufjedenfall besorgen.
 
Zurück