php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2009

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 26.02.2009, 21:48  
Neuer Benutzer
 
Registriert seit: 22.02.2009
Beiträge: 12
henny23 befindet sich auf einem aufstrebenden Ast
Standard SQL Injection Sicher?

Hi, hab mich gerade mit SQL Injections befasst und habe dieses hier um meine Website zu sichern erstmal gemacht (Bei der login.php):

PHP-Code:
<?php 
// Session starten
session_start ();
// Datenbankverbindung aufbauen 
$link mysql_connect ("localhost""root""********");
$db_selected mysql_select_db('datenbank'$link);
if (isset(
$_POST['charaktername'])&& isset($_POST['pwd'])){
         if(!
is_resource($link)) {
            echo 
"Verbindung zum Server fehlgeschlagen\n";
            } 
         else {

        if(
get_magic_quotes_gpc()) {
            
$_name        mysql_real_escape_string($_POST['charaktername']);
            
$_passwort    mysql_real_escape_string($_POST['pwd']);
        } else {
            
$_name        $_POST['charaktername'];
            
$_passwort    $_POST['pwd'];
        }
$passwort md5($_passwort);
$_sql1 "SELECT `UserId`,`Status`,`UserName`,`UserPass`,`Positionx`,`Positiony` FROM `users` WHERE UserName = '".$_name."' AND UserPass = '".$passwort."'";
$_res mysql_query($_sql1$link) or die(mysql_error());
$_anzahl = @mysql_num_rows($_res);
if (
$_anzahl 0){

$data mysql_fetch_array($_res);

  
$_SESSION["logged_in"] = 1;
  
$_SESSION["Status"] = $data[1];
  
$_SESSION["user_id"] = $data[0]; 
  
$_SESSION["user_nickname"] = $data[2]; 
  
$_SESSION['posx'] = $data[4]; 
  
$_SESSION['posy'] = $data[5];
if(
get_magic_quotes_gpc()) {
            
$_loggin        mysql_real_escape_string($_SESSION['logged_in']);
            
$_user          mysql_real_escape_string($_SESSION['user_id']);
            
$_name          mysql_real_escape_string($data[2]);
        } else {
            
$_loggin        $_SESSION['logged_in'];
            
$_user          $_SESSION['user_id'];
            
$_name          $data[2];
        }
$sql2 "UPDATE`users`SET`logged_in` = '" .$_logging"' WHERE`UserID` = '" .$_user"'";
$query2 mysql_query($sql2$link);
$loginchat mysql_query("INSERT INTO `shoutbox` (name, message, time) VALUES ('logging','".$_name." betritt die Welt','".date("d.m, G:i")."')");
echo
'<script type="text/javascript">
    parent.location.href="frames.php"
    </script>"'

}
         }
}
?>
Was sagen die Profis dazu:
Ist das so sicher, hab ich etwas falsch gemacht oder ist diese Methode veraltet?
henny23 ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 26.02.2009, 21:54  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Diese Absätze sind totaler Quatsch:
PHP-Code:
        if(get_magic_quotes_gpc()) {
            
$_name        mysql_real_escape_string($_POST['charaktername']);
            
$_passwort    mysql_real_escape_string($_POST['pwd']);
        } else {
            
$_name        $_POST['charaktername'];
            
$_passwort    $_POST['pwd'];
        } 
Bitte benutze die Boardsuche und lies Dir ähnliche Fragen der letzten Tage durch.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline  
Alt 26.02.2009, 22:09  
Neuer Benutzer
 
Registriert seit: 22.02.2009
Beiträge: 12
henny23 befindet sich auf einem aufstrebenden Ast
Standard

Hm komisch, warum wird es Hier dann so erklärt ?
henny23 ist offline  
Alt 26.02.2009, 22:11  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Ich les da nix über get_magic_quotes_gpc.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline  
Alt 26.02.2009, 22:28  
Neuer Benutzer
 
Registriert seit: 22.02.2009
Beiträge: 12
henny23 befindet sich auf einem aufstrebenden Ast
Standard

Ne hast recht, das hab ich woanders her....

PHP-Code:
$sql "SELECT * FROM tabelle WHERe name = '".mysql_real_escape_string(stripslashes($_GET["name"]))."' "
Was würdet ihr hier zu sagen? Reicht solch etwas aus?
henny23 ist offline  
Alt 26.02.2009, 22:31  
Supermoderator HD
 
Benutzerbild von Manko10
 
Registriert seit: 16.03.2008
Beiträge: 8.706
PHP-Kenntnisse:
Fortgeschritten
Manko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende Zukunft
Standard

Woher sollen wir dir das beantworten können? Reicht es die Tür abzuschließen, wenn daneben das Fenster offensteht?
Mache dich doch einfach mal über SQL-Injections schlau, bevor du uns hier zu jedem Szenario befragst.
__________________
Refining Linux Advent Calendar series “24 Outstanding ZSH Gems
Manko10 ist offline  
Alt 26.02.2009, 22:53  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

Unter Umständen zerstört ein unnötigerweise angewendetes stripslashes den Input und er entspricht damit nicht mehr dem was er eigentlich sein sollte.
robo47 ist offline  
Alt 26.02.2009, 23:37  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Außerdem
Zitat:
Bitte benutze die Boardsuche und lies Dir ähnliche Fragen der letzten Tage durch.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline  
Alt 27.02.2009, 09:46  
Erfahrener Benutzer
 
Benutzerbild von litterauspirna
 
Registriert seit: 24.04.2008
Beiträge: 3.172
PHP-Kenntnisse:
Anfänger
litterauspirna sorgt für eine eindrucksvolle Atmosphärelitterauspirna sorgt für eine eindrucksvolle Atmosphäre
litterauspirna eine Nachricht über ICQ schicken
Standard

Dau hast da einige Fehler drin. Nikosch aht eine Zeile schon angesprochen,da überschreibst du nämlich wieder deine Variable. In get_magic_quotes_gpc setzt man stripslashes ein, weil man da prüft ob magic_qoutes auf on stehen und so mit schon escaped sind. Mit stripslashes entfernst die dann wieder. Und erst beim eintragen in die DB setzt du mysql_real_escape_string und nur da und nach allen anderen Prüfungen.
__________________
Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
http://www.lit-web.de
litterauspirna ist offline  
Alt 28.02.2009, 18:13  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
In get_magic_quotes_gpc setzt man stripslashes ein, weil man da prüft ob magic_qoutes auf on stehen und so mit schon escaped sind.
Das stimmt so nicht.
get_magic_quotes_gpc
stripslashes
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

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

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

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Regex gegen Sql Injection notyyy PHP-Fortgeschrittene 8 20.10.2007 17:57
Sql Injection durchführen? Matthiasnet PHP Tipps 2007 10 21.06.2007 21:16
MySQL injection: mysql_real_escape_string tekknotrip PHP Tipps 2006 5 07.07.2006 11:46
[Erledigt] Dependency/Property Injection Off-Topic Diskussionen 1 18.05.2006 10:52
[url]http://phpmailer.sourceforge.net[/url] injecion secure? PHP Tipps 2007 6 22.12.2005 14:22
SQL - Injection Stümper Datenbanken 1 30.05.2005 06:36
mysql injection wirkungsvoll verhindern PHP Tipps 2005 4 09.04.2005 18:08
SQL Injection Frage Ypsillon PHP Tipps 2004-2 3 31.12.2004 00:30
Injection / XSS PHP Tipps 2004-2 4 22.11.2004 10:08

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php post injection, sql injection post, php post sql, post sql injection, http://www.php.de/php-einsteiger/52307-sql-injection-sicher.html, php sichere datenbankverbindung, php sql sicher, sichere datenbankverbindung php, mysql_real_escape_string sql injection, mysql php post injection, post injection php, php injection post, php sicheres login mit sql, injetion sicher, sichere sql verbindung php, php post sicher, sql-injection sicher, php sicheres mysql_query, php sql injection post, php sql login sicher

Alle Zeitangaben in WEZ +2. Es ist jetzt 18:24 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum