![]() |
Datenbank: firebird • Version: 3.0 • Zugriff über: table
db afrage username und passwort
hallo,
mochte über eine table(username) eine abfrage starten, für username und pasword. Wie sollte sowas aussehen?
Delphi-Quellcode:
username.SQL.Text := 'Select * from USERNAME WHERE NAME = ' + QuotedStr(Edit1.Text) + ' AND PASSWORD = ' + QuotedStr(Edit2.Text);
|
AW: db afrage username und passwort
Die Frage ist zu unspezifisch, was hast du vor?
|
AW: db afrage username und passwort
Passwörter niemals im Klartext speichern.
Deine Komponente kann bestimmt Parameter und die sollte man verwenden, aber wenn nicht, dann sollte man unbedingt die "richtige" Excape-Funktion verwernden und QuotedStr ist da definitiv falsch, da es eine komplett andere Syntax benutzt. Hashen und dann den Hash vor der Übertragung berechnen, also nicht erst im Query, nach dem das Passwort im Karltext durch's Netz lief.
SQL-Code:
SELECT * FROM username WHRERE name = :name AND password = md5(:salt + :name + :passwort);
Delphi-Quellcode:
Q.SQL.Text = 'SELECT * FROM username WHRERE name = :name AND password = :pass;';
Q.ParaByName('name').AsString := Edit1.Text; Q.ParaByName('pass').AsString := md5(salt + Edit1.Text + Edit2.Text); Q.Open |
AW: db afrage username und passwort
Hallöle...:P
Du möchtest etwas lernen :zwinker: Dann sei nicht böse...:wink: Zitat:
Begründung: 1. Der SQL Injection ist damit Tür und Tor geöffnet. Bitte verwende Parameter. :thumb: ![]() 2. Niemals Benutzernamen und Passwörter im Klartext in die DB speichern. Beim Benutzernamen drücke ich ein Auge zu...aber beim Passwort nicht. Setze dich mal mit Verschlüsselung, auch wenn es nur eine leichte Verschlüsselung ist, auseinander. :P |
AW: db afrage username und passwort
Noch besser gar keine Passwörter, sondern nur einen Hash (Obwohl ich heutzutage keinen MD5 mehr verwenden würde).
|
AW: db afrage username und passwort
Bei Hash's mache ich es inzwischen so, dass ich den Typ mit in den String einbaue.
Code:
Hash's kann man nich entschlüsseln, also lassen sich Passwörter nicht umkodieren, wenn man die Methode änder,
md5:45453241513246
sha2a:454532415132461 aber so kann man später etwas anderes einbauen und die alten Passwörter funktionieren weiterhin (kann man ja über ein Karenzzeit die Nutzer überreden das Passwort mal neu zu speichern, bzw. nach erfolgreichem Einloggen das Eingegebene im neuen Format neu speichern lassen)
Code:
So kann man im selben Fehld auch gleich noch 'nen nutzerabhängigen Salt mit verpacken
sha2a:fdsfdsa:454532415132461
|
AW: db afrage username und passwort
hallo,
haben hier ein problem bzw. fehlermeldung: Dynamic SQL Error SQL error code= -104 Token unknown -line 1, colum 31 name.
Delphi-Quellcode:
procedure TForm2.BitBtn3Click(Sender: TObject);
begin with Form3 do begin Query.SQL.Text := 'SELECT * FROM BENUTZER WHRERE name = :name AND password = :pass;'; Query.ParamByName('name').AsString := Edit1.Text; Query.ParamByName('pass').AsString := Edit2.Text; Query.Open; end; if Query.EOF then showmessage('Fehler') else form3.Show; end; |
AW: db afrage username und passwort
Zitat:
|
AW: db afrage username und passwort
"Where " ist Statement falsch geschrieben.
|
AW: db afrage username und passwort
Zusätzlich ist NAME ein reserviertes Wort. Entwder excapen
SQL-Code:
oder besser username o.ä. verwenden.
... where "name" = :name ...
|
AW: db afrage username und passwort
jetzt kommt keine Fehlermeldung mehr :-)
aber geht trozdem nicht ?
Delphi-Quellcode:
procedure TForm2.BitBtn3Click(Sender: TObject);
begin with Form3 do begin Table.SQL.Text := 'SELECT * FROM BENUTZER WHERE username = :name AND password = :pass;'; Table.ParamByName('name').AsString := Edit1.Text; Table.ParamByName('pass').AsString := Edit2.Text; //Table.Open; end; if Table.EOF then showmessage('Fehler') else form3.Show; end; |
AW: db afrage username und passwort
Wie heisst den die Spalte in der Datenbank?
|
AW: db afrage username und passwort
die Spalten
id username password die Datenbank BENUTZER |
AW: db afrage username und passwort
Ohen die Abfarge auzuführen wird kein Ergebnis geliefert werden
Zitat:
|
AW: db afrage username und passwort
Moin...:P
Fragen: 1: Warum heist die Query nun Table? Ist es eine Table oder immer noch eine Query? 2: Bitte laß das with xxx do einfach weg. Das macht nur Probleme... |
AW: db afrage username und passwort
Habe ein wenig experimentiert,
einmal mit einer Query Komponente und einmal mit einer Table Komponente. Bei der Query Komponente kommt immer noch eine Fehlermeldung, bei der Table nicht! Wie könnte eine bfrage aussehen?
Delphi-Quellcode:
if Edit1.Text = Query.ParamByName('user').AsString then begin
if Edit2.Text........ |
AW: db afrage username und passwort
Zitat:
Delphi-Quellcode:
...ist eindeutig falsch. Ein Parameter ist nur für die Aufnahme von Werten für die Query (SQL) da.
if Edit1.Text = Query.ParamByName('user').AsString then begin
Dein Parameter im SQL heißt (letzter Stand) :name ... diesen mußt du füllen.
Delphi-Quellcode:
PS: wie schon benmerkt ist name ein schlechter Bezeichner.
Query.ParamByName('name').AsString := 'Blubb';
|
AW: db afrage username und passwort
ParamByName ist für die Übergabe von Werten an die Abfrage vor dem Öffnen derselben.
FieldByName ist für das Abholen von Werten nach dem Öffnen der Abfrage. Ansonsten ist der gepostete Quelltext etwas knapp, um da zielgerichtet antworten zu können. Mal ein Schuss ins Blaue mit Hilfe der :glaskugel:
Delphi-Quellcode:
Wie heißt das Feld mit dem Benutzernamen in der Datenbank denn jetzt nun:
if Edit1.Text = Query.FieldByName('username').AsString then begin
if Edit2.Text........ Wir haben da mal Name, nach Hinweisen auf Fehlermöglichkeiten wurde daraus Username und jetzt ist es User? |
AW: db afrage username und passwort
Der vollständige Sourcecode wäre jetzt nicht schlecht,
und wenn etwas nicht funktioniert, wäre es gut zu wissen was nicht funktioniert. Gruß K-H |
AW: db afrage username und passwort
hallo,
einen vollständigen Sourcecode gibt es noch nicht, bin noch am experimentieren. es sollte über Edit1 (User) und Edit2 (Password) und einem Button ein Login erfolgen. Username und Passwort stehen in einer db wie ich das ganze sinnvoll und einfach löse??? :oops: |
AW: db afrage username und passwort
Gibt es hier vielleicht Beispiele?
Finde hier leider nichts :( |
AW: db afrage username und passwort
Moin...:P
Nichts ist besser als eine bestimmte Aufgabe zu programmieren. :thumb: Aber damit bist noch überfordert. :? Ich empfehle dir: 1. Delphi Crash Kurs ![]() 2. Datenbank Tutorial ![]() 3. SQL Tutorial ![]() |
AW: db afrage username und passwort
Zitat:
Zitat:
Gruß K-H |
AW: db afrage username und passwort
Zitat:
|
AW: db afrage username und passwort
Die Verhinderung von SQL-Injection ist nur ein Vorteil von (SQL-)Parametern.
|
AW: db afrage username und passwort
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:17 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz