php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 30.01.2007, 10:27  
Benutzer
 
Registriert seit: 26.01.2004
Beiträge: 62
fender
Standard Problem mit register globals on/off

Hallo

Hätte gerne gewußt wie ich nachfolgenden Script auf 'register globals off' umschreiben muß.
In meinen Büchern wird nicht genau darauf eingegeangen.
Es steht nur 'register globals on' kann unter Umständen sehr gefährlich werden!
Dazu folgendes:
Die einzige Variable die von einem Formular einer anderen Seite kommt ist:
'votenid'.
Alle anderen werden im Script erzeugt.

PHP-Code:
    $ip $REMOTE_ADDR;
    if (
$HTTP_X_FORWARDED_FOR
      
$ip .= " ($HTTP_X_FORWARDED_FOR)";
      

$sql "SELECT votenid, ip, max(Zeit) Zeit
        FROM vowahl
        WHERE votenid = $votenid
        AND ip = '$ip'
        AND (Zeit + INTERVAL 24 HOUR) > NOW()
        GROUP BY  votenid, ip"
;
        
$db->query($sql) or die(mysql_error());

if 
(!
$db->data())
#etc... 
__________________
Alex
GC
fender ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 30.01.2007, 11:56  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Im Prinzip solltest du im globalen Skript keine einfachen Variablen verwenden, die du nicht selbst erzeugt hast, es sei denn es handelt sich um diese vordefinierten Superglobalen:
http://de.php.net/variables.predefined
Zitat:
$GLOBALS, $_SERVER, $_GET, $_POST, $_COOKIE, $_FILES, $_ENV, $_REQUEST
Dem entsprechend sind $REMOTE_ADDR, $HTTP_X_FORWARDED zu ersetzen durch
$_SERVER['REMOTE_ADDR'] und $_SERVER['HTTP_X_FORWARDED'].

$votenid ist zu ersetzen durch $_GET['votenid'] bzw. $_POST['votenid'] (je nach dem was du als method-Attribut bei deinem Formular verwendet hast).

Hier noch ein bißchen ausführlichereres
http://de.php.net/register_globals
http://de3.php.net/manual/de/securit...-injection.php
Zergling-new ist offline  
Alt 30.01.2007, 13:30  
Benutzer
 
Registriert seit: 26.01.2004
Beiträge: 62
fender
Standard

Erst mal Dankeschön für die schnelle und verständliche Antwort.
Noch eine Frage:
Muß ich jetzt alle, bzw alle von Formularen gesendeten Variablen auf die oben genannte Weise ersetzen?
__________________
Alex
GC
fender ist offline  
Alt 30.01.2007, 13:36  
Erfahrener Benutzer
 
Benutzerbild von dsmcg
 
Registriert seit: 11.10.2005
Beiträge: 2.405
dsmcg sorgt für eine eindrucksvolle Atmosphäredsmcg sorgt für eine eindrucksvolle Atmosphäredsmcg sorgt für eine eindrucksvolle Atmosphäre
Standard

Zitat:
Zitat von fender
Erst mal Dankeschön für die schnelle und verständliche Antwort.
Noch eine Frage:
Muß ich jetzt alle, bzw alle von Formularen gesendeten Variablen auf die oben genannte Weise ersetzen?
jop
__________________
Wie man Fragen richtig stellt
dsmcg ist offline  
Alt 30.01.2007, 16:14  
Benutzer
 
Registriert seit: 26.01.2004
Beiträge: 62
fender
Standard

Frage: heißt "job" ja,yes oder si?
__________________
Alex
GC
fender ist offline  
Alt 30.01.2007, 16:24  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Ja, auf Formular-Daten greifst du mit $_POST['name'] bzw. $_GET['name'] zu.

$_SERVER['REMOTE_ADDR'] und $_SERVER['HTTP_X_FORWARDED'] sind unabhängig von einem Formular verfügbar, sozusagen Umgebungs-Variablen. Daher wurden sie im $_SERVER-Array zusammengefasst.

Falls du mal nicht weißt, wo deine Variablen stecken, einfach die Arrays ausgeben:
PHP-Code:
<?php
echo '<pre>';
var_dump($_SERVER$_GET$_POST);
echo 
'</pre>';
?>
Zergling-new ist offline  
Alt 30.01.2007, 17:08  
Erfahrener Benutzer
 
Benutzerbild von phpdummi
 
Registriert seit: 06.06.2008
Beiträge: 1.631
PHP-Kenntnisse:
Anfänger
phpdummi ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Zitat von dsmcg
jop
..
Zitat:
Zitat von fender
Frage: heißt "job" ja,yes oder si?
*g*
__________________
"Nobody is as smart as everybody" - Kevin Kelly
— The best things in life aren't things
phpdummi 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
[Erledigt] register globals krackmoe PHP Tipps 2008 2 17.07.2008 19:52
Timestamp problem phrain PHP Tipps 2008 2 04.04.2008 09:41
Register Globals | $_GET $_Post darkbird PHP Tipps 2008 4 29.02.2008 13:29
Problem mit globals max-dhom PHP Tipps 2006 20 17.08.2006 18:32
Register Globals? stefan-miti PHP Tipps 2006 4 16.07.2006 15:20
datensätze defekt oder problem mit dem einlesen? Ministry Datenbanken 4 06.07.2006 18:42
Links im ?variable=bla format und register globals off PHP Tipps 2006 2 20.02.2006 14:00
problem!!! PHP Tipps 2006 6 08.02.2006 11:06
[Erledigt] wieder ein Problem bei phpmailer und smtp PHP Tipps 2006 24 07.02.2006 01:07
register globals = off - Probleme seit Umstellung PHP Tipps 2005-2 6 25.08.2005 13:44
Smarty und PHP-Skript Problem PHP Tipps 2004-2 2 03.12.2004 22:27
Register globals = on PHP Tipps 2004-2 21 26.11.2004 14:03
register globals on /off PHP Tipps 2004 1 17.08.2004 01:39
Problem mit alter JavaScript-Funktion woods PHP Tipps 2004 1 13.08.2004 13:34
REGISTER GLOBALS FRAGE PHP Tipps 2004 8 11.08.2004 20:32

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php global funktioniert nicht, php global ersetzen, php formular array register_globals=on, php global geht nicht, php global problem, formular register_globals off, globals.iff funktioniert nicht stürzt ab, globals remote_addr, formular register globals, formular register globals off, globals on, probleme global php, register globals problem, php globals off, email formular register globals off, php globals problem, php formular register globals off, register globals off, $remote_addr register globals, php globals umschreiben

Alle Zeitangaben in WEZ +2. Es ist jetzt 15:41 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

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.