MWojt Posted May 27, 2014 Share Posted May 27, 2014 Hi Leute, ich hörte vor einiger Zeit von SQL-Injections. Ich wollte natürlich meine Webseite dagegen absichern, allerdings weiß ich nicht recht, wie ich das machen soll. Ich habe zwar bereits gesucht, allerdings nur etwas gefunden, das mich gezwungen hätte, übermäßig viel Text zu lesen. Nun meine Frage: Mit welcher Funktion kann man Variablen am besten "reinigen"? Wenn wir schonmal dabei sind, könnt ihr mir am besten gleich sagen, was man sonst noch für den reibungslosen Ablauf tun muss. Ich würde mich freuen, wenn ihr die Funktionen erklären könntet. Danke im Vorraus, MWojt Link to comment Share on other sites More sharing options...
Corona Posted May 27, 2014 Share Posted May 27, 2014 Weißt du was eine SQL injection ist? Also ganz salopp gesagt funktioniert sie so: Der Hacker gibt in ein Anmeldefeld (Beispiel) SQL code ein, der geschickt bei der SQL abfrage anstatt desd eigentlichen Codes ausgeführt wird, dieses Ergebnis liefert in Simplen fällen einfach immer "true" (zb , wenn man sagt, dass SELECT user WHERE 1==1 (oder so :3) und damit die Passwortabfrage umgeht), oder sie kann zum Auslesen ganzer Datenbanken genutzt werden. am einfachsten schützt du dich, indem du im eingegebenen passwortstring ganz einfach alle "gefährlichen" Chars ersetzt (",' Beispielsweise), damit der Code danach nicht mehr injected werden kann. Und ja, das ist alles sehr Roh da oben, aber es ging mir nicht darum, mein Nerd-Wissen auf die Menschheit loszulassen Link to comment Share on other sites More sharing options...
MWojt Posted May 27, 2014 Author Share Posted May 27, 2014 Reicht das wirklich, um sich davor zu schützen? Link to comment Share on other sites More sharing options...
Corona Posted May 27, 2014 Share Posted May 27, 2014 Nein, aber wenn du es wirklich 100% sicher machen willst, lass es von anderen erledigen. Mach ne Anmeldung via Facebook o.Ä., dann musst du nicht damit kämpfen (; Link to comment Share on other sites More sharing options...
MWojt Posted May 27, 2014 Author Share Posted May 27, 2014 Anmeldung via Facebook ist total bescheuert. Ich dachte bloß, es gäbe irgendwelche Funktionen, die einen String dahingehend verändern, dass er keinen Schaden mehr anrichten kann. Link to comment Share on other sites More sharing options...
Beefsteakwerfer Posted May 27, 2014 Share Posted May 27, 2014 (edited) Die Funktionen, die dir helfen, sind unter anderem: - preg_replace (ersetzt/entfernt alle Zeichen nach einem angegebenen Schema) - preg_match (prüft, ob bestimmte Zeichen oder Zeichensätze vorhanden sind und gibt je nachdem true oder false zurück) Wenn du die beiden Funktionen suchst wirst du viele Beispiele finden. Wichtig ist, dass du am besten alle Sonderzeichen herausfilterst. Das heißt: du lässt nur a-zA-Z0-9 zu. Falls du alle Zeichen brauchst und es daher etwas komplexer brauchst: such nach prepared statements. Mit prepared statements kann man problemlos jede Eingabe erlauben, aber der Angreifer wird ihn nicht ausführen können, weil der Code an seine feste Stelle gebunden ist und auch nicht die SQL-Abfrage beeinflussen oder verändern kann. Bitte bedenke, dass es neben SQL-Injections noch andere Angriffsmöglichkeiten gibt. So musst du beispielsweise auch Texte von Benutzern, welche du in der Datenbank speicherst und dann auf deiner Internetseite irgendwo ausgibst, über die PHP-Funktion htmlentities() escapen. Facebook-Logins oder ähnliches sind der völlig falsche Weg und vergraulen viele (potentielle) Benutzer. Das Thema IT-Sicherheit ist nicht einfach so und ganz schnell abgehandelt. Da ist viel lesen und verstehen nötig. Das was ich dir also beschreibe ist nicht alles worauf du achten musst und es würde den möglichen Umfang meiner Lebenszeit sprengen, das alles zu beschreiben und zu erläutern . Edited May 27, 2014 by Beefsteakwerfer Link to comment Share on other sites More sharing options...
idk.cpp Posted June 1, 2014 Share Posted June 1, 2014 Ich weiß ja nicht ob die Sache hier schon erledigt ist, aber ich geb trotz allem mal meinen Senf dazu: Bei PHP gibt es folgende Funktionen $reinerString = mysql_escape_string($unreinerString); $reinerString = filter_input(INPUT, "name", FILTER); http://php.net/manual/de/function.mysql-escape-string.php http://php.net/manual/de/function.filter-input.php (allgemein ist php.net eine sehr gute Referenz) Hoffe ich konnte helfen, idk.php Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now