Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 19

Thema: sql injections im login vermeiden

  1. #1
    Youngster
    Registriert seit
    14.07.2013
    Beiträge
    11
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard sql injections im login vermeiden

    Hi ich würde gerne wissen wie ich im folgendenden loginscript sql injections so gut wie komplett vermeiden ,, noch besser ganz vermeiden kann.

    PHP-Code:
    <?phpif($verhalten == 0) {?>
    <form method="post" action="index.php?page=log">
        <input type="text" name="user" id="benutzername" /><br />    <input type="password" name="passwort" id="benutzerpasswort" /><br />    <input type="submit" id="einloggen" value="Einloggen" /></form>
    <?php}if($verhalten == 1) {?>
    <?php
    }if($verhalten == 2) {?>
    <?php
    }?>

    </div><div id="logged"><?phpswitch($verhalten) {case 0:echo 'Bitte einloggen.<br><a href="register.php">oder Jetzt Registrieren...</a>';break;case 1:echo 'weiterleitung..';break;case 2:echo 'falsche daten. <a href="index.php">zurück</a>';}?>
    - - - Aktualisiert - - -

    Hier nochmal vernunftig leider nicht im codegenerator. der schmeisst alles kaputt.

    <?php
    if($verhalten == 0) {
    ?>


    <form method="post" action="index.php?page=log">


    <input type="text" name="user" id="benutzername" /><br />
    <input type="password" name="passwort" id="benutzerpasswort" /><br />
    <input type="submit" id="einloggen" value="Einloggen" />
    </form>


    <?php
    }
    if($verhalten == 1) {
    ?>


    <?php
    }
    if($verhalten == 2) {
    ?>


    <?php
    }
    ?>




    </div>
    <div id="logged">
    <?php
    switch($verhalten) {
    case 0:
    echo 'Bitte einloggen.<br><a href="register.php">oder Jetzt Registrieren...</a>';
    break;
    case 1:
    echo 'weiterleitung..';
    break;
    case 2:
    echo 'falsche daten. <a href="index.php">zurück</a>';
    }
    ?>



    ______________


    Ist beim registrieren auch sowas nötig? kann man von dort auch solche unverschämtheiten wie sql injections machen?

    im moment kann ich mich mit 1=1 usw als injection einloggen, des is ja völliger schmaan nicht.
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!

  2. #2
    Bandit
    Gast

    Standard AW: sql injections im login vermeiden

    Zitat Zitat von capulcu Beitrag anzeigen
    noch besser ganz vermeiden kann.
    Du bist zu 100% auf dem sicheren Weg, denn wo keine Datenbank, da auch keine SQL-Injections

  3. #3
    Prinz(essin)
    Registriert seit
    26.03.2013
    Beiträge
    835
    Danke
    20
    Bekam 76 mal "Danke" in 75 Postings

    Standard AW: sql injections im login vermeiden

    Hier nochmal vernunftig leider nicht im codegenerator. der schmeisst alles kaputt.
    Dann verwende einfach einen vernünftigen Editor, dann klappt das auch mit dem Kopieren und Einfügen anständig.

  4. #4
    Youngster
    Themenstarter

    Registriert seit
    14.07.2013
    Beiträge
    11
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: sql injections im login vermeiden

    Hier nochmal der ganze Code
    benutze webocton scriptly. Wenn du ein besseren kennst , dann auf gib mir den Namen.


    <?php
    $verhalten = 0;
    session_start();
    if(!isset($_SESSION["username"]) and !isset($_GET["page"])) {
    $verhalten = 0;
    }
    if($_GET["page"] == "log") {
    /*
    $user = $_POST["user"];
    $passwort = $_POST["passwort"];
    */


    $user = strtolower($_POST["user"]);
    $passwort = md5 ($_POST["passwort"]);


    $verbindung = mysql_connect("", "" "")
    or die ("Fehler im System");


    mysql_select_db("")
    or die ("Verbidung zur Datenbank war nicht möglich...");


    $control = 0;
    $abfrage = "SELECT * FROM login WHERE user = '$user' AND passwort ='$passwort'";
    $ergebnis = mysql_query($abfrage);
    while($row = mysql_fetch_object($ergebnis))
    {
    $control++;
    }


    if($control != 0) {
    $_SESSION["username"] = $user;
    $verhalten = 1;
    } else {
    $verhalten = 2;
    }
    }
    ?>
    <!DOCTYPE html>
    <html>
    <head>
    <link rel="stylesheet" type="text/css" href="http://h-a-k-a-n-p.de/hakanhp/design.css"/>
    <link href="design.css" type="text/css" rel="stylesheet" media="screen"/>
    <link href="http://h-a-k-a-n-p.de/hakanhp/menu_assets/styles.css" rel="stylesheet" type="text/css"/>


    <title>Login</title>
    <?php
    if($verhalten == 1) {
    ?>
    <meta http-equiv="refresh" content="2; URL=http://start.php"
    <?php
    }
    ?>




    </head>




    <body>


    <div id="wrapper">


    <div id="header">
    </div>


    <div id="cssmenu">
    <ul>
    <li class='active'><a href='#'><span>Anasayfa</span></a></li>
    <li class='last'><a href="#">Bos alan</a></li>
    <li class='has-sub'><a href='#'><span>Bos alan</span></a>
    <ul>
    <li class='has-sub'><a href='#'><span>Bos alan</span></a>
    <ul>
    <li><a href='#'><span>Bos Alan</span></a></li>
    <li class='last'><a href='#'><span>Bos alan</span></a></li>
    </ul>
    </li>
    <li class='has-sub'><a href='#'><span>Bos alan</span></a>
    <ul>
    <li><a href='#'><span>Bos alan</span></a></li>
    <li class='last'><a href='#'><span>Bos alan</span></a></li>
    </ul>
    </li>
    </ul>
    </li>
    <li><a href='#'><span>Bos alan</span></a></li>
    <li class='last'><a href='#'><span>Bos alan</span></a></li>
    </ul>
    </div>




    <div id="content">


    <div id="content2">




    </div>
    </div>




    <div id="login">
    <?php
    if($verhalten == 0) {
    ?>


    <form method="post" action="index.php?page=log">


    <input type="text" name="user" id="benutzername" /><br />
    <input type="password" name="passwort" id="benutzerpasswort" /><br />
    <input type="submit" id="einloggen" value="Einloggen" />
    </form>


    <?php
    }
    if($verhalten == 1) {
    ?>


    <?php
    }
    if($verhalten == 2) {
    ?>


    <?php
    }
    ?>




    </div>
    <div id="logged">
    <?php
    switch($verhalten) {
    case 0:
    echo 'Bitte einloggen.<br><a href="register.php">oder Jetzt Registrieren...</a>';
    break;
    case 1:
    echo 'weiterleitung..';
    break;
    case 2:
    echo 'falsche daten. <a href="index.php">zurück</a>';
    }
    ?>




    </div>












    <div id="footer">
    </div>
    </div>


    </body>
    </html>
    Geändert von capulcu (16.07.2013 um 11:21 Uhr)

  5. #5
    Prinz(essin)
    Registriert seit
    26.03.2013
    Beiträge
    835
    Danke
    20
    Bekam 76 mal "Danke" in 75 Postings

    Standard AW: sql injections im login vermeiden

    Verwende http://php.net/mysql_real_escape_string um die Eingaben abzusichern.

    Die Abfrage würde dann so aussehen:
    PHP-Code:
    $abfrage "
    SELECT * 
    FROM login 
    WHERE user = mysql_real_escape_string(
    $user
    AND passwort = mysql_real_escape_string(
    $passwort)
    "

    Editoren sind auch immer ein wenig Geschmacksfrage, ich verwende PSPad.

    EDIT: Du solltest die Datenbank-Schnittstelle wechseln, verwende PDO oder Mysqli. Die verwendete Schnittstelle ist mit der nächsten PHP-Version wahrscheinlich nicht mehr vorhanden, womit dein Script dann nicht mehr funktionieren wird. Zur Zeit gilt sie als depraced, siehe dazu auch http://php.net/manual/de/mysqlinfo.api.choosing.php
    Geändert von explanator (16.07.2013 um 12:05 Uhr)

  6. #6
    Youngster
    Themenstarter

    Registriert seit
    14.07.2013
    Beiträge
    11
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: sql injections im login vermeiden

    Danke, klappt wunderbar. Mit ´or1blabla komm ich nicht mehr rein.

    Danke auch für die Info im Edit.




    - - - Aktualisiert - - -

    ehm.. irgendwie komm ich mit garkeinen Benutzernamen mehr rein

    PHP-Code:
    $abfrage "SELECT * FROM login WHERE user = 'mysql_real_escape ($user)' AND passwort = 'mysql_real_escape_string($passwort)'"

  7. #7
    Prinz(essin)
    Registriert seit
    26.03.2013
    Beiträge
    835
    Danke
    20
    Bekam 76 mal "Danke" in 75 Postings

    Standard AW: sql injections im login vermeiden

    Zitat Zitat von capulcu Beitrag anzeigen

    ehm.. irgendwie komm ich mit garkeinen Benutzernamen mehr rein

    [
    Dann musst du halt debuggen.

    Lass dir mal die Variablen ausgeben und schau wie sie in der Datenbank abgelegt sind.

    Was ist damit:
    PHP-Code:
    $passwort md5 ($_POST["passwort"]); 
    Sind die Passworte auch gehasht in der Datenbank?

  8. #8
    Youngster
    Themenstarter

    Registriert seit
    14.07.2013
    Beiträge
    11
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: sql injections im login vermeiden

    mit "debuggen" & "gehasht" kann ich leider "noch" nicht viel anfagen. Die hinterlegten Variablen sind eigentlich richtig.


    mit den unsicheren Code hat es ja Funktioniert. Als ich dein Code probiert habe gings nicht mehr. Hab ich vielleicht einfach die anfuehrungszeichen irgendwie falsch gesetzt?


    Egal, lass mal ich nerve bestimmt schon
    Geändert von capulcu (16.07.2013 um 13:40 Uhr)

  9. #9
    Bandit
    Gast

    Standard AW: sql injections im login vermeiden

    PHP-Code:
    if($_GET["page"] == "log"
    {
      
    $verbindung mysql_connect("""" "")
          or die (
    "Fehler im System");


      
    mysql_select_db("")
          or die (
    "Verbidung zur Datenbank war nicht möglich...");

      
    $control 0;

      
    $query "SELECT 
                   count(*) 
                 FROM 
                   `login`
                 WHERE 
                   `user` = '" 
    mysql_real_escape_string($_POST["user"]) . "'
                  AND 
                   `passwort` ='" 
    md5 ($_POST["passwort"]) . "'";
                                

      
    $result mysql_query($query)
         or die (
    "MySQL-Error: " mysql_error());
         
      
    $control mysql_result($result0);

    PS: Eigentlich sind mir ja die Bewertungen von Beiträgen völlig wurscht, aber jetzt muss ich doch mal was dazu sagen:
    Du kackst hier einen Quellcode unformatiert rein, in dem nichts, aber auch rein garnichts mit SQL-Injektions bzw. Datenbankabfragen zu finden ist und gibst dann eine schlechte Bewertung, weil man darauf hinweist??? Sag mal, geht's noch???
    Geändert von Bandit (16.07.2013 um 14:04 Uhr)

  10. #10
    Youngster
    Themenstarter

    Registriert seit
    14.07.2013
    Beiträge
    11
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: sql injections im login vermeiden

    Ich hab dich doch garnicht bewertet?

    Das einzige was ich bewertet habe war die Aussage von explanator < Dann verwende einfach einen vernünftigen Editor, dann klappt das auch mit dem Kopieren und Einfügen anständig.>
    hab
    beim bewerten geschrieben nicht konstruktiv. Hab ich dir die Bewertung abgegeben?

Ähnliche Themen

  1. Mehrere <div> vermeiden?
    Von TheScript im Forum HTML & CSS Forum
    Antworten: 4
    Letzter Beitrag: 11.07.2013, 16:26
  2. MySQL Injections
    Von minder im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 4
    Letzter Beitrag: 02.04.2011, 21:20
  3. Sicherheit vor SQL Injections?
    Von pattiheonly im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 5
    Letzter Beitrag: 24.09.2007, 13:48
  4. Rollover-Effekte in Navigationsleiste vermeiden
    Von dulldeidi im Forum Zope & Plone - das deutsche Hilfeforum
    Antworten: 3
    Letzter Beitrag: 09.10.2006, 12:20
  5. Öffnen neuer Pages vermeiden
    Von Dragon999 im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 1
    Letzter Beitrag: 20.07.2005, 17:26

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •