Variablen per Link übergeben | SQL Injection abwehren
Guma
- php
Hallo ich schreibe gerade wie angekündigt mein Newsletterscript,
hier will ich die Übergabe der Mailadresse aus dem FORM so umsetzen, das mir keiner SQL Injections vornehmen kann.
So weit bin ich jetzt:
Link z.B.: newsletter?subscribemail=$email
Dann im PHP Script:
$email=$_GET['email'];
if($email !== NULL) { mach was;}
Hier hätte ich gerne mehr geprüft als nur ob das Variablenfeld leer ist! Ich will z.B. prüfen ob eine valide mailadresse drin ist und es insgesammt nur um ein wortstring handelt (mehrere worte sollen nicht zulässig sein - ich she das als schutz). Ich will verhindern, dass jemand SQL Befehle ausführen kann. Ich benötige hier Hilfestellung, da ich das zum ersten mal versuche.
kennst sich jemand damit gut aus und kann mich unterstützen. Ich will das endlich hinbekommen, denn meine appilkationen sind derzeit nicht richtig abgesichert gegen hackerversuche. Es wäre fatal, wenn kunden gelöscht werden könnten oder gar aus der datenbank angezeigt werden.
grüße von Guma
hi,
Ich will verhindern, dass jemand SQL Befehle ausführen kann.
Dazu brauchst du einzig und allein die Funktion, die die Daten entsprechend escaped, so dass sie im Zweifelsfalle keinen Schaden mehr anrichten können - für MySQL wäre das in PHP mysql_real_escape_string.
Ich will das endlich hinbekommen, denn meine appilkationen sind derzeit nicht richtig abgesichert gegen hackerversuche. Es wäre fatal, wenn kunden gelöscht werden könnten oder gar aus der datenbank angezeigt werden.
Dann solltest du deine Applikationen nicht produktiv einsetzen, wenn sie noch löchrig sind wie schweizer Käse.
gruß,
wahsaga
danke wahsaga, mit mysql_real_escape_string werde ich mich beschäftigen. die käselöcher werde cih nach und nach stopfen. für die kanditaten, die scripte einsetzen, die sie selbst nicht kennen laufen noch eher gefahr einer hackeratacke. meine scripts kann ich entsprechend abändern.
grüße von guma
Hi!
Ich will verhindern, dass jemand SQL Befehle ausführen kann.
Dazu brauchst du einzig und allein die Funktion, die die Daten entsprechend escaped, so dass sie im Zweifelsfalle keinen Schaden mehr anrichten können - für MySQL wäre das in PHP mysql_real_escape_string.
Ja, aber in einem Newsletterscript müssen noch weitere Prüfungen ausgeführt werden.
Neben der Gefahr einer SQL-Injection bestünde auch noch die Gefahr eine Email-Header-Injection.
Auf gar keinen Fall dürfen beispielsweise Zeilenumbrüche im Eingabefeld für Adresse, Name, ... eingegeben werden.
Headerzeilen werden nämlich durch Zeilenumbrüche voneinader getrennt.
Und wenn es möglich ist, der Mailfunktion eigene Header zu übergeben, dann könnte man es zum Spammen nutzen.
Die Themen mit den Emailscripten und SQL-Injections haben wir hier alle paar Tage wieder.
Bitte, Guma, benutze ich die Suchfunktion dieses Forums und schaue auch mal im Archiv.
Eigentlich müßtest du dort alles finden können, was du brauchst (Auch reguläre Ausdrücke zur Überprüfung der syntaktischen Richtigkeit von Emailadressen).
Wenn danach noch Fragen offen sind, kannst du diese ja hier stellen.
Schöner Gruß,
rob