Hackerboard Wiki HaboBlog
Hackerboard bei Facebook Hackerboard bei Google+ Hackerboard bei Twitter

[HaBo]

 
(Web-) Design und webbasierte Sprachen Tipps & Tricks, Designabgleich, HTML & Javascript, Flash, ASP, PHP, Perl/CGI...

Einfache SQL Abfrage zwingt mich in die Knie *HILFE*

Diskussion: Einfache SQL Abfrage zwingt mich in die Knie *HILFE* im Forum (Web-) Design und webbasierte Sprachen, in der Kategorie Web, Network & Multimedia Palace; Anzeige Moin Leute, Ich bin gerade dabei für meine Site n Loginscript zu schreiben Doch scheitere ich bei der SQL ...

Antwort
Alt 24.04.06, 17:55   #1 (permalink)
 
Registriert seit: 12.10.05
TeeKayo2 Leistung: Facit NTK
Likes: 0
Einfache SQL Abfrage zwingt mich in die Knie *HILFE*

Anzeige

Moin Leute,

Ich bin gerade dabei für meine Site n Loginscript zu schreiben
Doch scheitere ich bei der SQL Abfrage.

Code:
 $result = mysql_query("SELECT * FROM login WHERE username='user'");
Mehr will ich ersteinmal garnicht überprüfen aber selbst das geht nicht.

Ich kann noch ein klares " SELECT * from login WHERE username!= "" "
Da bekomm ich Ergebnisse.
Ich kann auch einzelene Rows darstellen.

Aber DAS diese klitzekleine Abfrage mag mich nicht.

Dazu das ihr auch ned glaubt ich nutz den falschen Namen noch n htmlsnipped den ich hierzu verwende:
Code:
$user     = $_POST["user"];
$passwort = $_POST["pass"]
Weiss einer da nen Rat, ich versteh es einfach nciht mehr.

MfG,

Tk
TeeKayo2 ist offline   Mit Zitat antworten
Alt 24.04.06, 17:57   #2 (permalink)
 
Benutzerbild von $oul
 
Registriert seit: 19.12.04
$oul Leistung: Z3
$oul eine Nachricht über ICQ schicken
Likes: 2
Standard

Ähm, muss es nicht == heißen?

mfg $oul
__________________
Der eigene Wille müsste stets ein wenig mächtiger sein, als es das eigene Selbst ist.
Aber Wunschdenken stellt ein Risiko dar und so etwas können wir uns in einem Weltkapitalismus nicht leisten.
$oul ist offline   Mit Zitat antworten
   
HaBOT
 
- Anzeige -

Werbung ist gerade online    
Alt 24.04.06, 18:07   #3 (permalink)
Administrator
 
Benutzerbild von Mackz
 
Registriert seit: 02.10.01
Mackz Leistung: Pentium IMackz Leistung: Pentium I
Likes: 30
Standard RE: Einfache SQL Abfrage zwingt mich in die Knie *HILFE*

Zitat:
Original von TeeKayo2
Code:
 $result = mysql_query("SELECT * FROM login WHERE username='user'");
da fehlt ein $
das muss $user heißen

Deine Abfrage ist allerings nicht sicher, da der gepostete Inhalt ungefiltert im Query Verwendung findet. Sicherer wäre es, wenn zum Beispiel nur mit Hashes gearbeitet werden würde. z.b. WHERE MD5(username)=MD5($user)
__________________
RL sux big time... auch 2012!

Deleting pr0n is like killing your best friend

[HaBo] bei Facebook - Werde Fan
Mackz ist offline   Mit Zitat antworten
Alt 24.04.06, 18:09   #4 (permalink)
LX
Moderator
 
Registriert seit: 14.02.06
LX Leistung: Z3
LX eine Nachricht über ICQ schicken LX eine Nachricht über AIM schicken LX eine Nachricht über Yahoo! schicken
Likes: 21
Lightbulb

$oul:
Nein, mySQL vergleicht mit einem einfachen Gleichheitszeichen.

Wegen des Problems, welches Mackz anspricht: Stelle vorher sicher, dass kein fremder Code in $user landen kann, zur Not durch escapen von Quotes (falls magic_quotes nicht aktiviert sind).
__________________
"Ever tried. Ever failed. No matter.
Try again. Fail again. Fail better."
- Samuel Beckett

JS BB LX UP
LX ist offline   Mit Zitat antworten
Alt 24.04.06, 18:21   #5 (permalink)
Themenstarter
 
Registriert seit: 12.10.05
TeeKayo2 Leistung: Facit NTK
Likes: 0
Standard

Hi,

Ersteinmal danke für eure Antworten nur ist es leider nichts davon.

Das es in SQL ned == ist is klar ^^
Das mit dem $ is Jacke wie Hose wie ich in einige Beispielscripten sah und ich habe sowieso beides ausprobiert, hier nur letzten Versuch gepostet.

Das Sicherheitsproblem wird noch gelöst.
Das Passwort verschlüssel ich natürlich nach MD5 den Usernamen <B>bisher</B> nicht, ist aber ne gute Idee um aufs escapen zu verzichten!! OO

Also kann es sich nun noch jemand erklären

MfG,

Teekayo?
TeeKayo2 ist offline   Mit Zitat antworten
Alt 24.04.06, 18:22   #6 (permalink)
 
Registriert seit: 09.01.05
Imrahil Leistung: Facit NTK
Likes: 0
Standard

bitte anstatt:
Code:
$user     = $_POST["user"];
$passwort = $_POST["pass"];
einfach
Code:
$user     = mysql_real_escape_string($_POST["user"]);
$passwort = mysql_real_escape_string($_POST["pass"]);
benutzen.
Der korrekte Query ist ja oben schon erklärt worden
Btw. bitte poste immer Fehlermeldungen dazu falls welche kommen oder was die ausgabe ist.
Das hilft bei der Fehlersuche
Imrahil
Imrahil ist offline   Mit Zitat antworten
Alt 24.04.06, 18:23   #7 (permalink)
Themenstarter
 
Registriert seit: 12.10.05
TeeKayo2 Leistung: Facit NTK
Likes: 0
Standard

... nur damits man sieht ich hab geantwortet hast unpassend gepostet ^^

mfg,

tk
TeeKayo2 ist offline   Mit Zitat antworten
Alt 24.04.06, 20:18   #8 (permalink)
Administrator
 
Benutzerbild von Mackz
 
Registriert seit: 02.10.01
Mackz Leistung: Pentium IMackz Leistung: Pentium I
Likes: 30
Standard

Zitat:
Original von TeeKayo2
Das mit dem $ is Jacke wie Hose
Nein ist es nicht.
Mit 'user' sucht er nach dem String "user"
Mit '$user' sucht er nach dem Inhalt der Variable $user.

Hier ein Login-Script Tutorial: http://www.php-resource.de/tutorials/read/38/1/
__________________
RL sux big time... auch 2012!

Deleting pr0n is like killing your best friend

[HaBo] bei Facebook - Werde Fan
Mackz ist offline   Mit Zitat antworten
Alt 24.04.06, 21:51   #9 (permalink)
 
Registriert seit: 29.01.06
xsheep Leistung: Facit NTK
Likes: 0
Standard

Ich glaube, du musst es so machen, aber ich bin mir nicht sicher, versuchs einfach mal :
Code:
$result = mysql_query("SELECT * FROM login WHERE username='user'");
$rows = mysql_fetch_array($result, MYSQL_NUM);

if($_POST['user']==rows[1]&&$_POST['pass']=rows[2]){


  // Login erfolgreich

}else{

  // Falsche daten

}
(Du musst evtl. rows[1] bzw. rows[2] abändern)

cya xsheep
xsheep ist offline   Mit Zitat antworten
Alt 24.04.06, 22:13   #10 (permalink)
 
Registriert seit: 24.10.05
Blacki Leistung: Facit NTK
Likes: 0
Standard

Kann man dann aber nicht nur einen User machen?
Blacki ist offline   Mit Zitat antworten
Alt 24.04.06, 23:27   #11 (permalink)
 
Registriert seit: 16.02.04
treo Leistung: Facit NTK
treo eine Nachricht über ICQ schicken
Likes: 0
Standard

es muss auf jedenfall $user sein, alles andere wie schon gesagt ist falsch
weiterhin ist dann noch zusagen das ein SELECT * sehr aufwendig ist, du solltest lieber angeben was genau du haben willst.
echo mysql_error();
sollte auch nach jedem query drin sein.
und auch das escapen wie imrahil es schon vorgeschlagen hat ist wichtig,
du kannst aber auch mysql_escape_string statt mysql_real_escape_string verwenden, seine variante passt sich jedoch der verwerdeten verbindung an
treo ist offline   Mit Zitat antworten
Alt 25.04.06, 07:25   #12 (permalink)
Themenstarter
 
Registriert seit: 12.10.05
TeeKayo2 Leistung: Facit NTK
Likes: 0
Standard

Hallo,

Ich habs seid Gestern, das Board war nur ledier nicht in der Lage meine Antwort zu posten.

Es lag daran das ich nur array[1] und 2 ausgegebe habe aber nach 0 gefragt hatte, kein wunder das dort nichts erscheint Oo

Mit dem escapen, das ist lustig, ich hatte nämlich schon selbst einige SQL injections versucht aer bemerkt das Php automatisch "stripslashes" ausführt.

Trotzdem danke für eure Hilfe,

MfG,

TeeKayo?
TeeKayo2 ist offline   Mit Zitat antworten
Alt 25.04.06, 16:00   #13 (permalink)
 
Registriert seit: 16.02.04
treo Leistung: Facit NTK
treo eine Nachricht über ICQ schicken
Likes: 0
Standard

du meinst wohl addslashes? Du solltest dich aber nicht drauf verlassen das gpc magic quotes an ist, denn genau das ist dafür verantwortlich, soweit ich mich erinnere ist das in einer der neueren php versionen schon nichtmal mehr dabei
treo ist offline   Mit Zitat antworten
Alt 27.04.06, 07:30   #14 (permalink)
Themenstarter
 
Registriert seit: 12.10.05
TeeKayo2 Leistung: Facit NTK
Likes: 0
Standard

Hi,


Ja klar mein ich Add ned strip ...

Wieso verlassen, ich "verlasse" mich nciht darauf.
hab nur gesehen das es mir nicht möglich war ne Injection zu machen und das ich dann einen neuen user namens" \'Drop ..." in meiner DB hatte

Wenn ich fertig bin mit dem gröbsten auf der Page kommen noch einige checks, da könnt ihr euch dann auch gerne wieder beteiligen !

MfG,

TK
TeeKayo2 ist offline   Mit Zitat antworten
Alt 02.05.06, 17:33   #15 (permalink)
 
Registriert seit: 02.05.06
LordZed Leistung: Facit NTK
Likes: 0
Standard

Zitat:
Original von treo
es muss auf jedenfall $user sein, alles andere wie schon gesagt ist falsch
Das stimmt! Was hier wohl verwirrung gebracht hat ist, dass man bei doppelten Anführungszeichen die Variablen nicht escapen muss um gegensatz zu einfachen Anführungszeichen, wo man jede Variable escapen muss. Wie gesagt müssten wir wissen, wie die Fehlermeldung lautet um dir genauer helfen zu können. Kann vieles sein, was da los ist ^^

//EDIT

Also wenn user eine PHP-Variable ist muss auf jeden Fall ein $ davor. Der übersicht halber würde ich es noch escapen. Zumindest mache ich das immer. Und zur Fehlervorbeugung um Tabellen-/Spaltennamen ` setzen.

Sprich:
Code:
$result = mysql_query("SELECT * FROM `login` WHERE `username`='".$user."'");
Oder ist das Problem inzwischen behoben?
LordZed ist offline   Mit Zitat antworten
Antwort
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Web, Network & Multimedia Palace » (Web-) Design und webbasierte Sprachen » Einfache SQL Abfrage zwingt mich in die Knie *HILFE*
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Mysql-Abfrage stellt mich vor ein Problem 1000sassa (Web-) Design und webbasierte Sprachen 2 12.02.07 14:03
Apache hasst mich,php hilfe Headmaster Code Kitchen 4 01.02.07 13:16
MySQL Abfrage bringt mich zur Verzweiflung MorbZ!!! (Web-) Design und webbasierte Sprachen 7 25.07.06 08:24
Skype/Hilfe- Ich höre mich selber! luky Die Problemzone 7 17.05.06 09:09
Hilfe [Scotty] hat mich gescannt!! Easyrider (In)security allgemein 16 18.10.04 02:53


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61