Moin!
- Was steckt hinter dem Fehler 503 beim Eingeben des Prozentzeichens, den ich nur dann kriege, nicht jedoch, wenn ich die richtigen Daten (Name und Passwort) eingebe?
<http://de.selfhtml.org/servercgi/server/httpstatuscodes.htm@title=HTTP 503> heißt, dass der Server momentan überlastet ist und deshalb nichts verarbeiten kann.
Dürfen Übergabeparameter einfach kein "%" enthalten?
Hast du das Prozentzeichen an die URL gehangen (GET) oder per POST übermittelt? Im ersten Fall ist das Prozent nämlich eine Art Escape-Sequenz.
- Gibt es evtl. Standard-Kniffe (Funktions-Sammlung), die jegliche Einschleußattacken in jeglichen SQL-Dialekten außer Gefecht setzt?
Jede SQL-API (MySQL, PostgreSQL, …) bietet dir eine Funktion, die häufig auf escape_string endet. Damit werden alle sensiblen Zeichen unschädlich gemacht. Ob auch % darunter fällt, weiß ich nicht, aber kommt das nicht eh nur bei LIKE zum Tragen?
(Hab mir z.B. mal Artikel wie diesen durchgelesen: http://de.wikipedia.org/wiki/SQL_Injection)
Das ist doch ein guter Anfang.
Abdgedeckt sein sollten eben "%"-Eingaben, wenns nicht eh der Server schon blockiert, Hochkommata-Erweiterungen, falls solche per stripslashes() vom Code aus erlaubt werden, weitere angehängte SQL-Befehle nach einem Strichpunkt, besonders gefährlich scheinbar innerhalb von Integer-Abfragen, usw.
Wieso unterscheidest du denn überhaupt zwischen „Integer-Abfragen“ und „String-Abfragen“? Zumindest in MySQL, vielleicht sogar laut SQL-Standard, ist auch das quoten einer Zahl erlaubt:
SELECT * FROM meiner_tabelle WHERE id='25'
Damit kannst sicherstellen, dass kein eingeschleuster SQL-Code ausgeführt wird.
Viele Grüße,
Robert