SQL = vs WIE vs WIE BINÄRE, groß-und Kleinschreibung nicht
Habe ich auf ziemlich seltsame Verhalten mit SQL WIE = = und WIE BINÄRE
Hinweis : Die ersten 3 Zeichen des Passwortes ist eigentlich 3Vf
und der rest der Abfrage ist syntaktisch korrekt zu.
SUBSTRING(password,1, 3) = "3VF" -> returns true
SUBSTRING(password,1, 3) = "3Vf" -> returns true
SUBSTRING(password,1, 3) LIKE "3VF" -> returns true
SUBSTRING(password,1, 3) LIKE "3Vf" -> returns true
Jedoch, wenn ich WIE BINÄRE, bekomme ich case sensitive Verhalten
SUBSTRING(password,1, 3) LIKE BINARY "3VF" -> returns false
SUBSTRING(password,1, 3) LIKE BINARY "3Vf" -> returns true
Ich verstehe nicht, warum die Vergleiche mit groß-und Kleinschreibung. Bedenkt man das Passwort ist ein VARCHAR(64)
. In all den Ressourcen, die ich gesehen habe online es sagt, dass = und WIE sowohl die groß-und Kleinschreibung.
Hinweis: die Abfrage, die bei mir läuft ist
SELECT * from users where username="natas16" AND SUBSTRING(password,1, 3) = XX
Dies ist auch NICHT eine Reale Anwendung, sondern eine natas Ebene. Es ist eine Art 'hacken' Spielplatz. Sie haben verschiedene Ebenen mit Schwachstellen sollen Sie zu nutzen. Also dies ist nicht eine Reale Welt Beispiel.
http://www.overthewire.org/wargames/natas/
PASSWORD('Function')
richtig zu lagern. Obwohl das Verhalten, das Sie beschreiben, ist sehr merkwürdig. dev.mysql.com/doc/refman/5.0/en/password-hashing.htmlsparen Sie passsword als plain text?? Verwenden Sie ein Raute-Taste und Spalte collate als latin_colate_cs.
natas ist eine Art von hacking-Spielplatz. Sie bekommen eine Herausforderung, und Sie sollen zu brechen, irgendwie. das Ziel ist die brute-force.
InformationsquelleAutor Ahmed Aeon Axan | 2013-03-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ob die
LIKE
und=
act in einem Fall sensible Art und Weise wird bestimmt durch die Sortierung des Feldes, das Sie tun, den Vergleich auf. Wenn Ihr Feld ist eine non-case-sensitive Sortierung (wie ich vermute, deins funktioniert), dann bekommst du nicht-case-sensitiven Vergleich der Ergebnisse. Wenn das Feld eine binäre oder groß- /Kleinschreibung Sortierung oder wenn Sie dieBINARY
keyword auf den Vergleich zu erzwingen, wird ein binärer Vergleich, Sie würde die groß- /Kleinschreibung.Ich denke, es könnte ein Fallstrick, wenn Sie nicht verstehen, wie Sortierungen Arbeit, als Ihre Anwendung könnte durchaus zu unerwarteten Ergebnissen kommen, als Sie bekommen. Nicht sicher, wie verbreitet ein problem ist. Die meisten wissen eigentlich nicht, legen Sie das Passwort in der DB im Klartext, sondern hash, der Sie für die Lagerung in einem medium, das alle Kleinbuchstaben (wie md5-hash oder ähnliches), solche, die groß-und Kleinschreibung ist kein problem.
ja, ich unerstand. Ich habe bearbeitet meine post, um diese aufzunehmen. All dies ist Teil einer natas Ebene. Es ist im Grunde eine sandbox mit irgendeiner Art von Sicherheitsanfälligkeit sollen Sie zu nutzen. Das ist also weit von einer realen Anwendung. Und aufgrund dieser kann ich nicht genau sehen, Ihre Datenbank-schema. Aber Ihre Antwort vollständig beschreibt das Verhalten, So dass ich denke, das muss es sein.
InformationsquelleAutor Mike Brant
Lesen abt die option Sortieren, und wie man es machen-und Kleinschreibung von mysql tutorial
InformationsquelleAutor georgecj11