MySQL: bei "where" auf Kleinschreibung prüfen
Michaela
- php
0 Axel Richter0 Michaela0 Axel Richter0 Michaela
0 ziegenmelker0 Philip0 Michaela0 Tobias Kloth
0 Tom
Hallo,
ich überprüfe eine Formulareingabe in einer MySQl-Abfrage mit
...
WHERE
aos_aerzte.name = '".$_POST["user"]."'
AND aos_aerzte.pass = '".$_POST["pass"]."'
...
Allerdings wird dabei nicht auf Groß-/Kleinschreibung überprüft.
Wie kann ich das in der MySQL-Abfrage realisieren?
Danke für Eure Hilfe und 1000 Grüße,
Eure Micha
Hallo,
Allerdings wird dabei nicht auf Groß-/Kleinschreibung überprüft.
Wie kann ich das in der MySQL-Abfrage realisieren?
http://dev.mysql.com/doc/mysql/en/Case_Sensitivity_Operators.html
viele Grüße
Axel
Hi Axel,
habs so probiert
$query = "
SELECT BINARY
tt.a,
tt.b,
tt.name,
tt.c,
tt.d,
tt.pass
FROM
aos_aerzte
WHERE
tt.name = '".$_POST["user"]."'
AND tt.pass = '".$_POST["pass"]."'
";
... und mit dem aktuellen XAMP getestet ... leider klappts nicht.
Was mache ich falsch?
LG, Micha
Hallo,
habs so probiert
$query = "
SELECT BINARY
tt.a,
tt.b,
tt.name,
tt.c,
tt.d,
tt.pass
FROM
aos_aerzte
WHERE
tt.name = '".$_POST["user"]."'
AND tt.pass = '".$_POST["pass"]."'
";
Was mache ich falsch?
...
The BINARY operator casts the string following it to a binary string.
...
BINARY ist ein Operator. Er wandelt einen nachfolgenden String in einen Binary-String, der dann case-sensitive ist. Dass der Operator im Beispiel direkt nach SELECT steht, ist Zufall.
... WHERE BINARY tt.name = 'Müller' AND BINARY tt.pass = 'Kennwort'
viele Grüße
Axel
Lieber Axel,
es klappt prima. Vielen, vielen Dank und einen schönen Tag :-)
Micha
Hallo Michaela,
ich überprüfe eine Formulareingabe in einer MySQl-Abfrage mit
...
WHERE
aos_aerzte.name = '".$_POST["user"]."'
AND aos_aerzte.pass = '".$_POST["pass"]."'
...
bist Du Dir im klaren darüber, was passiert, wenn ein user als Name folgendes angibt:
ich_bin_ein_gangster';delete * from aos_aerzte;...
Ich bin natürlich davon ausgegangen, dass Du den Usernamen nicht schon auf den Client durch JavaScript auf unzulässige Zeichen geprüft hast, das würde Dir auch bei Böswilligen nichts nützen. Stichwort: Seite nachbauen und Form von da abschicken.
Hallo,
Ich bin natürlich davon ausgegangen, dass Du den Usernamen nicht schon auf den Client durch JavaScript auf unzulässige Zeichen geprüft hast, das würde Dir auch bei Böswilligen nichts nützen. Stichwort: Seite nachbauen und Form von da abschicken.
Also ich brauche nur 2 Klicks, um Javascript zu deaktivieren. Der Formularnachbau ist damit eigentlich überflüssig ...
mfg,
Philip
... deswegen auch die Überprüfung auf dem Server !!
Michaela
Hi,
... deswegen auch die Überprüfung auf dem Server !!
Michaela
aber unbedingt alle unerlaubten Zeichen ausfiltern!
Ansonsten schau Dir mal die Funktionen LOWER() und UPPER() an.
cu, ziegenmelker
Schon klar,
gehe den Weg umgekehrt - lasse nur [a-z], [A-Z], und [0-9] zu ...
Gruss, Micha
Hallo,
Also ich brauche nur 2 Klicks, um Javascript zu deaktivieren. Der Formularnachbau ist damit eigentlich überflüssig ...
toll, ich brauche nur einen Klick, bin ich jetzt besser? ;-)
Ich denke Du hast mich falsch verstanden, ich sage ja gerade dass eine Validierung _auch_ mit eingeschaltetem JS nichts nützt (Seitennachbau).
Und immerhin würde man ja das Absenden des Formulars nach einer Validierung ja auch mit JS machen.
cu, ziegenmelker
Hallo,
toll, ich brauche nur einen Klick, bin ich jetzt besser? ;-)
ja, bist du ;)
Ich denke Du hast mich falsch verstanden, ich sage ja gerade dass eine Validierung _auch_ mit eingeschaltetem JS nichts nützt (Seitennachbau).
Hab ich schon so verstanden. Ich wollte nur klarmachen, dass man nicht erst den umständlicheren Weg über ein Formularnachbau gehen muss, um solche Pseudo-Prüfungen zu auszuhebeln ...
cu, ziegenmelker
mfg,
Philip
Hello,
toll, ich brauche nur einen Klick, bin ich jetzt besser? ;-)
ja, bist du ;)
Ich denke Du hast mich falsch verstanden, ich sage ja gerade dass eine Validierung _auch_ mit eingeschaltetem JS nichts nützt (Seitennachbau).
Hab ich schon so verstanden. Ich wollte nur klarmachen, dass man nicht erst den umständlicheren Weg über ein Formularnachbau gehen muss, um solche Pseudo-Prüfungen zu auszuhebeln ...
Wie schickst Du denn ein mit JavaScript positiv geprüftes Formular ab, wenn Du JS ausschaltest? Aber bitte, ohne es nachzubauen!
Nun bin ich aber gespannt.
Liebe Grüße aus http://www.braunschweig.de
Tom
Hallo,
Wie schickst Du denn ein mit JavaScript positiv geprüftes Formular ab, wenn Du JS ausschaltest? Aber bitte, ohne es nachzubauen!
Nun bin ich aber gespannt.
Ehrlich gesagt sehe ich dein Problem nicht... Da man die Prüfung jawohl derart einbauen wird, dass sie sowieso nur greift, wenn JS aktiviert ist (ich glaube nicht, dass du User ohne JS einfach so vernachlässigst) kann ich das Formular auch abschicken, wenn ich JS deaktiviere?!? Oder versteh ich da grad irgendwas falsch???
mfg,
Philip
Hello,
Wie schickst Du denn ein mit JavaScript positiv geprüftes Formular ab, wenn Du JS ausschaltest? Aber bitte, ohne es nachzubauen!
Nun bin ich aber gespannt.
Ehrlich gesagt sehe ich dein Problem nicht... Da man die Prüfung jawohl derart einbauen wird, dass sie sowieso nur greift, wenn JS aktiviert ist (ich glaube nicht, dass du User ohne JS einfach so vernachlässigst) kann ich das Formular auch abschicken, wenn ich JS deaktiviere?!? Oder versteh ich da grad irgendwas falsch???
<cite>
Also ich brauche nur 2 Klicks, um Javascript zu deaktivieren. Der Formularnachbau ist damit eigentlich überflüssig ...
</cite>
Ich habe damit kein Problem, aber Du hast Ziegenmelker scheinbar nicht richtig verstanden. Wenn man Formularprüfungen mit JavaScript einbaut, dann schreibt man i.d.R. auch JavaScript am Client vor. Das ist ja durchaus legitim. Benutzer, die ihr JavaScript nicht einschalten wollen, dürfen eben nicht alle Funktionen nutzen.
Das sind also in unserem Beispiel die nicht diskutierbaren Voraussetzungen.
Wenn ich nun aber eine Formularprüfung mit JavaScript durchführe, baue ich die natürlich so auf, dass ein ungeprüftes Formular (also eines auf einem Non-JS-Client) gar nicht abgeschickt werden kann, es sei denn, man baut es eben nach. Am einfachsten geht das, wenn man nur ein Doppelkreuz ins action-Attribut einträgt und die Ressource erst mittels JavaScript nachträgt.
Ohne Manipulation ist dann keine Absendung ohne JS möglich.
Liebe Grüße aus http://www.braunschweig.de
Tom
Hallo,
Ehrlich gesagt sehe ich dein Problem nicht... Da man die Prüfung jawohl derart einbauen wird, dass sie sowieso nur greift, wenn JS aktiviert ist (ich glaube nicht, dass du User ohne JS einfach so vernachlässigst) kann ich das Formular auch abschicken, wenn ich JS deaktiviere?!? Oder versteh ich da grad irgendwas falsch???
<cite>
Also ich brauche nur 2 Klicks, um Javascript zu deaktivieren. Der Formularnachbau ist damit eigentlich überflüssig ...
</cite>Ich habe damit kein Problem, aber Du hast Ziegenmelker scheinbar nicht richtig verstanden. Wenn man Formularprüfungen mit JavaScript einbaut, dann schreibt man i.d.R. auch JavaScript am Client vor. Das ist ja durchaus legitim. Benutzer, die ihr JavaScript nicht einschalten wollen, dürfen eben nicht alle Funktionen nutzen.
Nunja, wie ich ja oben schon geschrieben habe bin ich davon ausgegangen, dass man Nutzer ohne JS _nicht_ einfach so ignoriert ...
Das sind also in unserem Beispiel die nicht diskutierbaren Voraussetzungen.
Wenn ich nun aber eine Formularprüfung mit JavaScript durchführe, baue ich die natürlich so auf, dass ein ungeprüftes Formular (also eines auf einem Non-JS-Client) gar nicht abgeschickt werden kann, es sei denn, man baut es eben nach. Am einfachsten geht das, wenn man nur ein Doppelkreuz ins action-Attribut einträgt und die Ressource erst mittels JavaScript nachträgt.
Mir ist klar, wie man so etwas baut, wenn man nur JS fähigen Clients das Senden des Formulares ermöglichen will. IMHO sind diese ganzen Prüfungen per JS aber sowieso nur bedingt nützlich, nähmlich dann wenn man - neben der serverseitigen Prüfung - die Eingaben auch noch clientseitig prüfen will, um z.B. dem User per alert() o.ä. auf seinen Fehler hinzuweisen ...
Ohne Manipulation ist dann keine Absendung ohne JS möglich.
Es ist klar, dass _unter diesen Voraussetzungen_ nur eine Manipulation per Nachbau möglich ist. Ich bin aber wie gesagt von anderen Voraussetzungen ausgegangen.
mfg,
Philip
Hi,
$_POST["user"] und $_POST["pass"] werden bevor sie in die MysQL-Abfrage gehen auf Sonderzeichen auf dem Server überprüft und dann ausgeschlossen!
Micha
Hallo,
bist Du Dir im klaren darüber, was passiert, wenn ein user als Name folgendes angibt:
ich_bin_ein_gangster';delete * from aos_aerzte;...
es wird garnichts passieren: mysql_query arbeitet nur einen Query ab, alles was nach dem ; kommt wird ignoriert - Zumal dein DELETE-Syntax sowieso falsch ist - DELETE erwartet keine Angabe der Spalten.
Ich bin natürlich davon ausgegangen, dass Du den Usernamen nicht schon auf den Client durch JavaScript auf unzulässige Zeichen geprüft hast,
das ist egal - Daten die vom User kommen dürfen _nie_ ohne serverseitige Prüfung verwendet werden.
Grüße aus Nürnberg
Tobias
Hello,
das Stichwort heißt binary
Liebe Grüße aus http://www.braunschweig.de
Tom