MYSQL

Dieses Thema im Forum "Webmaster Hilfe / Programmierer Forum" wurde erstellt von disler, 03.08.2007.

  1. disler

    disler Erfahrener Benutzer

    Dabei seit:
    05.07.2007
    Beiträge:
    1.654
    Zustimmungen:
    0
    Ort:
    Schweiz
    Auf meiner HP hab ich jetzt Datenbank integriert! Ich habe auch auf meiner Hp einen internen bereich gemacht! Kann mir jemand sagen, wie ich aus einer Tabelle ein einziges Attribut auslesen kann, eines bestimmtes??

    Geht das mit dem Befehl :
    "Select from tbl_meinehp_user where 'E-Mail' = '$_REQUEST['e-mail']' "


    greez david
     
  2. AdMan

    schau mal hier: Windows-Wartungs-Tool. Viele Probleme lassen sich damit einfach beheben. Oftmals ist der PC dann auch schneller!
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren.
  3. DaPole

    DaPole Erfahrener Benutzer

    Dabei seit:
    12.01.2007
    Beiträge:
    2.508
    Zustimmungen:
    0
    ehm Ja!

    Genau so geht das!

    mit Where ist das schon korrekt!

    Benutze aber nie LIKE ( So iner art durchsuchen )
    ISt unsicher und wird von kiddies leicht ausgetrickst!
     
  4. disler

    disler Erfahrener Benutzer

    Dabei seit:
    05.07.2007
    Beiträge:
    1.654
    Zustimmungen:
    0
    Ort:
    Schweiz
    Danke! :D
     
  5. #4 splasch, 03.08.2007
    splasch

    splasch Erfahrener Benutzer

    Dabei seit:
    29.01.2007
    Beiträge:
    901
    Zustimmungen:
    0
    Der Befehl ist net richtig geschrieben glaub nicht das er so funktionieren wird.
    Und noch was schreib nie ungeprüft Werte von ausserhalb in die Db genau das machst du aber mit den Sql befehl.
    Was willst du überhaupt von der Db abrufen das wurde nähmlich komplett vergessen im sql befehl anzugeben.

    Select * from tbl_meinehp_user where E-Mail = '$mail' ;

    Mfg Splasch
     
  6. disler

    disler Erfahrener Benutzer

    Dabei seit:
    05.07.2007
    Beiträge:
    1.654
    Zustimmungen:
    0
    Ort:
    Schweiz
    Wenn einer eine E-Mail eingibt, sollen die Benutzerdaten des typ kommen. Das $Request['e-mail'] kommt vom Formular, wo er seine E-Mail angegeben hat. Das Formular macht eine überprüfung, ob es eine E-Mail ist, ausserdem vergleicht er sie dann mit den Daten in der DB! Deshalb dieser Befehl! Also erhrlich geasgt, verstehe ich den unterschied zwischen deinem und meinem Befehl ned!


    nochmals meinem Befehl :
    Select * From tbl_meienhp_user where E_Mail = 'Request["E-Mail"]'


    E_Mail ist das Attribut in der DB!

    P.S der Stern zwischen selext und From habe ich vergessen hinein zuschreiben! Der steht schon da!
     
  7. #6 splasch, 03.08.2007
    splasch

    splasch Erfahrener Benutzer

    Dabei seit:
    29.01.2007
    Beiträge:
    901
    Zustimmungen:
    0
    Zu einen mal spricht man in einer Db von Spalten und tabellen aber ist jetzt egal.
    Was ein Request ist weiß ich. In deinen Fall geht es um Sql injektion da du den Quell code nicht absichert und Daten ohne zu Prüfen gleich in die Db schickst.

    Daher mußte die werte die vom Formular kommen erst prüfen ob es keine gefährlichen sql befehle enthält die deine Db Manipulieren könnte.Darum übergibt man ein get,post ,request nicht dierekt sondern prüft das ganze voher.
    Dafür gibst in Php schon fertig befehle die das machen.

    PHP:
    $Mail=mysql_escape_string($_REQUEST['e-mail']);

    Mfg Splasch
     
  8. disler

    disler Erfahrener Benutzer

    Dabei seit:
    05.07.2007
    Beiträge:
    1.654
    Zustimmungen:
    0
    Ort:
    Schweiz
    Ich habe gemeint, das dieser befehl:
    $db = Select * From tbl_meienhp_user where E_Mail = 'Request["E-Mail"]'
    etwas ausliest.

    Mit diesem Befehl frage ich ja nur etwas ab! Oder?
    Ich habe gemeint mit :
    Select * From tbl_meinehp_user set E_Mail = 'Request["E-Mai"l]'
    schreibe ich etwas in die DB!

    Also jetzt bin ich ein wenig verwirrt! Könntest du mir genau sagen, was etwas hineinschreibt, und was etwas hinaus nimmt??


    danke schon im voraus!
     
  9. #8 splasch, 03.08.2007
    splasch

    splasch Erfahrener Benutzer

    Dabei seit:
    29.01.2007
    Beiträge:
    901
    Zustimmungen:
    0
    Hi

    Es ist egal ob du was lesen oder schreiben in die Db willst von ausen also Fremd user können das dann so Manipulieren das die Db entweder gelöscht wird oder einträge geändert werden bwz ein True zurückgeliefert wird.

    schauen wir uns noch mal den Befehl an von dir

    Select * From tbl_meinehp_user where E_Mail = '$_Request["E-Mai"l]'

    So im Forumlar schreib nun ein Böser User ' or E_Mail='' //

    Dann lautet dein Sql Befehl
    Select * From tbl_meinehp_user where E_Mail = '' or E_Mail='' //;

    Und siehe da Plötzlich gibt der Select befehl alles aus der Tabell aus die Where klausel wurde ausser kraft gesetzt.

    Das war aber noch ein sehr Hamlose Manipulation des Sql befehles man könnte damit auch deine Db komplett löschen oder tabellen löschen oder sich selbst als Administrator eintragen und hätte dann vollen Zugriff auf deine Webseite.

    Mfg Splasch
     
  10. AdMan

    Es ist generell erstmal empfehlenswert alle ggf. veralteten oder fehlerhaften Treiber zu scannen und auf neue zu aktualisieren. Hier kannst du einen Treiber-Scanner downloaden. Das erspart oftmals viel Ärger und hilft gegen diverse Probleme.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren.
  11. disler

    disler Erfahrener Benutzer

    Dabei seit:
    05.07.2007
    Beiträge:
    1.654
    Zustimmungen:
    0
    Ort:
    Schweiz
    Geht das auch, wenn ich im Formular mit Java Script definiert habe, das eine E-Mail Adresse angegeben werden muss??

    <script type="text/javascript">

    function MM_findObj(n, d) { //v4.01
    var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
    if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[n];
    for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers.document);
    if(!x && d.getElementById) x=d.getElementById(n); return x;
    }

    function MM_validateForm() { //v4.0
    var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
    for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args);
    if (val) { nm=val.name; if ((val=val.value)!="") {
    if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
    if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n';
    } else if (test!='R') { num = parseFloat(val);
    if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
    if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
    min=test.substring(8,p); max=test.substring(p+1);
    if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
    } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' fehlt.\n'; }
    } if (errors) alert('Folgende Fehler sind beim Sende versuch aufgetreten:\n'+errors);
    document.MM_returnValue = (errors == '');
    }
    //-->
    </script>


    und hier noch das Form dazu!:

    <form action="#" method="post" name="form1" onSubmit="MM_validateForm('e-mail','','RisEmail','passwort','','R');return document.MM_returnValue">


    </p>
    <table width="700">
    <tr>
    <td width="82"><label>E-Mail</label></td>
    <td width="602"><input type="text" name="e-mail"></td>
    </tr>

    <tr>
    <td><input type="submit" name="Submit" value="Senden"></td>
    <td></td>
    </tr>
    </table>
    </form>
     
  12. #10 splasch, 03.08.2007
    splasch

    splasch Erfahrener Benutzer

    Dabei seit:
    29.01.2007
    Beiträge:
    901
    Zustimmungen:
    0
    Ja das geht dann immer noch.Man muß nemlich garnicht dein Formular benutzen um dir ein Request zu schicken.Damit wird dann deine ganze Javaüberprüfung umgangen.

    Also nicht sicher.

    Mfg Splasch
     
Thema:

MYSQL

Die Seite wird geladen...

MYSQL - Ähnliche Themen

  1. C# und MySQL

    C# und MySQL: Hallo zusammen! Ich bräuchte dringend hilfe von Experten, da ich ein totaler Anfänger bin. Ich habe eine vorhandene Excel Tabelle. Diese soll in...
  2. Programmierer Ajax/mySQL/node.js etc

    Programmierer Ajax/mySQL/node.js etc: Diplom-Informatiker programmiert datenbankspezifische und technisch anspruchsvolle Webseiten. Professionell und mit viel und langjähriger...
  3. MYSQL Problem

    MYSQL Problem: Guten Abend zusammen, kann mir jemand erklären warum meine Bedingung nicht funktioniert? Müsste eigentlich ein Fehler ausgegeben werden. <?php...
  4. MySQL Server 5.5

    MySQL Server 5.5: Wie die Überschrift schon sagt hab ich ein Problem mit MySQL Mein Problem ist ich habe das Passwort vergessen und weist nicht wie man es ändert...
  5. MySQL 5 und PHP 5 ein MUSS ???

    MySQL 5 und PHP 5 ein MUSS ???: Hallo Leute, wollte mir heute das Strato BasicWeb L Webhosting-Packet kaufen. Habe im Internet gelsen das MySQL 5 und PHP 5 ein MUSS sind. Alles...