getreidemuehlen
-


Hinweise


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten
Alt 22.08.2003, 14:17   #1
QCO
TP-Senior
 
Registriert seit: Mar 2003
Ort: Leipzig
QCO macht alles soweit korrekt

Sicherheit: Input slashen u. register_globals killen


Folgender Code am Anfang eines Script sollte alle an das Script übergebenen Daten sicher machen, indem ggf. addslashes verwendet wird. Damit wird SQL-Injektion unmöglich. Zusätzlich werden, falls register_globals aktiviert ist, diese Variablen gelöscht.
PHP-Code:
if( !@get_magic_quotes_gpc() )
{
    
$vars = array(
        array(&
$HTTP_GET_VARS, &$_GET),
        array(&
$HTTP_POST_VARS, &$_POST),
        array(&
$HTTP_COOKIE_VARS, &$_COOKIE),
        array(&
$HTTP_POST_FILES, &$_FILES),
        array(&
$HTTP_SESSION_VARS, &$_SESSION)
    );

    for(
$i 0$i<count($vars); $i++)
    {
        if( 
is_array($vars[$i][0]) )
        {
            while( list(
$k$v) = each($vars[$i][0]) )
            {
                if( 
is_array($vars[$i][0][$k]) )
                {
                    while( list(
$k2$v2) = each($vars[$i][0][$k]) )
                    {
                        
$vars[$i][0][$k][$k2] = addslashes($v2);
                    }
                    @
reset($vars[$i][0][$k]);
                }
                else
                {
                    
$vars[$i][0][$k] = addslashes($v);
                }
            }
            @
reset($vars[$i][0]);

            
$vars[$i][1] = $vars[$i][0];
        }
    }

    unset(
$vars);
}

if( (@
get_cfg_var('register_globals') == true) || (@get_cfg_var('register_globals') === false) )
{
    if( 
is_array($_REQUEST) )
    {
        while( list(
$k$v) = each($_REQUEST) )
        {
            unset($
$k);
        }
    }

__________________
[httpsmog]
"I have not failed. I've just found 10,000 ways that won't work." - Thomas Alva Edison (1847-1931)
QCO ist offline   Mit Zitat antworten


Alt 22.08.2003, 18:00   #2
TP-Moderator
 
Benutzerbild von Stuck Mojo
 
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
Stuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKE
Das mit dem magic_quotes isn bissel zu kompliziert, oder?
Ich benutze das hier:
PHP-Code:
   function my_magic_quotes(&$var$quotes true) {
      foreach(
$var AS $key => $value) {
         if (
is_array($var[$key])) {
             
my_magic_quotes($var[$key],$quotes);
         } else {
             if(
get_magic_quotes_gpc() && !$quotes) {
                
$var[$key] = stripslashes($var[$key]);
             } else if (!
get_magic_quotes_gpc() && $quotes) {
                
$var[$key] = addslashes($var[$key]);
             }
         }
      }
   } 
-> http://php3.de/manual/en/function.ge...quotes-gpc.php ...bei den User-Comments. Allerdings hab ichs nochn bissel ausgebaut. Einfach das Array übergeben und fertisch

Gruss
Jan
Stuck Mojo ist offline   Mit Zitat antworten
Alt 22.08.2003, 19:57   #3
QCO
TP-Senior
 
Registriert seit: Mar 2003
Ort: Leipzig
QCO macht alles soweit korrekt
wieso ist das kompliziert? einmal inlcluden und fertig.
mir ging es einfach darum mit einem script alle eventualitäten zu erschlagen.
__________________
[httpsmog]
"I have not failed. I've just found 10,000 ways that won't work." - Thomas Alva Edison (1847-1931)
QCO ist offline   Mit Zitat antworten
Alt 25.08.2003, 07:58   #4
TP-Moderator
 
Benutzerbild von Stuck Mojo
 
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
Stuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKE
Naja... das Anwenden nicht aber das Script ansich... so wie ich das sehe arbeitet dein Script nicht rekursiv, sondern du gehst manuell nur bis in die 2te Array-Ebene. Mit einer rekursiven Funktion ist man da besser bedient.

Eine andere Frage, die sich auftut ist die, ob man Session-Daten auch mit Slashes versehen sollte?? Wozu? Spätestens nach dem 2ten Seitenausfruf wären die Daten doch schon "zugeslashed" ... Jeder Aufruf escaped jeden Slash...

Genau das gleiche gilt für $_FILES... da hatte vor einer Weile mal jemand ne Frage zu gestellt (warst du das nicht sogar?)... ob die Daten auch durch magic_quotes escaped werden. Ich konnte es aber bisher auch noch nicht ausprobieren.

Gruss
Jan
Stuck Mojo ist offline   Mit Zitat antworten
Alt 25.08.2003, 08:41   #5
QCO
TP-Senior
 
Registriert seit: Mar 2003
Ort: Leipzig
QCO macht alles soweit korrekt
ok, das mit den sessions ist richtig. ich hatte damit zwar noch keine probleme aber ggf. werden die wohl mehrfach geslashed.
das gilt aber nicht für $_FILES, denn das wird nicht über mehrere seiten 'mitgeschleppt'. $_FILES besteht aber überwiegend aus daten, die vom browser des users kommen. warum sollen die also nicht auch manipulierbar sein?
__________________
[httpsmog]
"I have not failed. I've just found 10,000 ways that won't work." - Thomas Alva Edison (1847-1931)
QCO ist offline   Mit Zitat antworten
Alt 25.08.2003, 08:46   #6
TP-Moderator
 
Benutzerbild von Stuck Mojo
 
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
Stuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKE
wie gesagt... mit Files bin ich mir nicht sicher, da ichs auch noch nicht probiert habe diese zu manipulieren...
Stuck Mojo ist offline   Mit Zitat antworten
Antwort

  Aktuelles Thema
  TP Hilfe Forum > Web-Editoren & Coding > Traum-Dynamik > Traum-Scripts
Sicherheit: Input slashen u. register_globals killen Sicherheit: Input slashen u. register_globals killen
« GaFleX' Simple Counter (File basiert) | Kleines Gästebuch »

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
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


Alle Zeitangaben in WEZ +2. Es ist jetzt 23:08 Uhr.

Powered by: vBulletin Version 3.7 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd. / Search Engine Friendly URLs by vBSEO 3.2.0 ©2008, Crawlability, Inc.
Traum-Projekt.com | Suchen | Archiv | Impressum | Kontakt | | | Nach oben |



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 62 63 64 65 66 67

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 62 63 64 65 66 67