php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 01.06.2007, 10:45  
Erfahrener Benutzer
 
Benutzerbild von tomtaz
 
Registriert seit: 17.06.2008
Beiträge: 1.762
PHP-Kenntnisse:
Fortgeschritten
tomtaz ist einfach richtig netttomtaz ist einfach richtig netttomtaz ist einfach richtig netttomtaz ist einfach richtig netttomtaz ist einfach richtig nett
tomtaz eine Nachricht über ICQ schicken tomtaz eine Nachricht über Skype™ schicken
Standard Frage zu register_globals

Hallo,

nach Stundenlanger Diskusion mit meinen Provider, der sich weigert register_globals auf Off zu setzen, und ich leider keinen Einfluss auf die php.ini habe, habe ich es versucht mittels .htaccess zu lösen.

Nun, nachdem ich ein PHP Script aufrufe, bekomme ich immer einen Fehler 500.

Meine Frage ist nun, gibt es noch eine Möglichkeit Register Globals auf Off zu setzen, ausser die phpini und oder .htaccess Variante verwenden zu müssen?


Hintergrund ist mein Gästebuch. Das wird die letzten Tage immer gehäufter mit Spam überseht, drotz Capcha Bild. Meine Scripte sind alle auf register_globals Off geschrieben, aber komme drotzdem nicht weiter.

Die einzig logische Erklärung liegt bei register_globals on.

PHPInfo : http://charts-arena.de/phpinfo.php
Gästebuch: http://charts-arena.de/guestbook.html

Hat jemand ne Idee?
__________________
Mfg Tomtaz
"Es soll jetzt diese Erfindung geben.... Kugel oder so heißt die. Ist so eine Art Suchmaschine..."
tomtaz ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 01.06.2007, 11:02  
Erfahrener Benutzer
 
Registriert seit: 13.08.2007
Beiträge: 1.976
KingCrunch befindet sich auf einem aufstrebenden Ast
KingCrunch eine Nachricht über ICQ schicken KingCrunch eine Nachricht über AIM schicken KingCrunch eine Nachricht über MSN schicken KingCrunch eine Nachricht über Yahoo! schicken
Standard

Vor Benutzung jeder Variable diese mit einem Standard-Wert vorbelegen ^^ Was anderes fällt mir leider nicht ein -.-

Das ein Provider weigert, hab ich aber bis heute auch noch nicht gehört Da will man den was Gutes tun und er weigert sich ^^
__________________
Nicht jeder Fehler ist ein Bug.
KingCrunch ist offline  
Alt 01.06.2007, 11:45  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Du kannst die Werte manuell löschen:
PHP-Code:
<?php
foreach (array_merge($_ENV$_GET$_POST$_COOKIE$_SERVER) as $key => $value)) {
  if (
array_key_exists($key$GLOBALS)) {
    unset($
$key$GLOBALS[$key]);
  }
}
?>
Ist aber ungetestet. Wie kommst du denn aber darauf, dass register_globals an deinem Spam schuld ist? Ich würde hier mehr Zeit in den Spamschutz investieren, vielleicht hast du ja dein Captcha falsch eingebunden.
Zergling-new ist offline  
Alt 01.06.2007, 11:51  
Erfahrener Benutzer
 
Benutzerbild von tomtaz
 
Registriert seit: 17.06.2008
Beiträge: 1.762
PHP-Kenntnisse:
Fortgeschritten
tomtaz ist einfach richtig netttomtaz ist einfach richtig netttomtaz ist einfach richtig netttomtaz ist einfach richtig netttomtaz ist einfach richtig nett
tomtaz eine Nachricht über ICQ schicken tomtaz eine Nachricht über Skype™ schicken
Standard

Zitat:
Zitat von Zergling
Du kannst die Werte manuell löschen:
PHP-Code:
<?php
foreach (array_merge($_ENV$_GET$_POST$_COOKIE$_SERVER) as $key => $value)) {
  if (
array_key_exists($key$GLOBALS)) {
    unset($
$key$GLOBALS[$key]);
  }
}
?>
Ist aber ungetestet. Wie kommst du denn aber darauf, dass register_globals an deinem Spam schuld ist? Ich würde hier mehr Zeit in den Spamschutz investieren, vielleicht hast du ja dein Captcha falsch eingebunden.
Das glaub ich aber weniger:

Der Captcha-Code wird kurz vorm Speichern in der DB überprüft. Diese Variable wird in einer SESSION gespeichert...
__________________
Mfg Tomtaz
"Es soll jetzt diese Erfindung geben.... Kugel oder so heißt die. Ist so eine Art Suchmaschine..."
tomtaz ist offline  
Alt 01.06.2007, 16:29  
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

Hmm, konsequent die Superglobals nutzen und temporäre (Zähler, Zwischen-) Variablen mit NULL initialisieren sollte eigentlich reichen. Zuweisungen die außerhalb von Bedingungen (also immer) stattfinden brauchen nicht mal initialisiert werden.
nikosch ist gerade online  
Alt 01.06.2007, 20:48  
Benutzer
 
Registriert seit: 18.08.2006
Beiträge: 61
Jogibär
Standard

Zitat:
nach Stundenlanger Diskusion mit meinen Provider, der sich weigert register_globals auf Off zu setzen
Wenn das kein Grund ist, den Provider zu wechseln....
Jogibär ist offline  
Alt 01.06.2007, 23:28  
Erfahrener Benutzer
 
Benutzerbild von tomtaz
 
Registriert seit: 17.06.2008
Beiträge: 1.762
PHP-Kenntnisse:
Fortgeschritten
tomtaz ist einfach richtig netttomtaz ist einfach richtig netttomtaz ist einfach richtig netttomtaz ist einfach richtig netttomtaz ist einfach richtig nett
tomtaz eine Nachricht über ICQ schicken tomtaz eine Nachricht über Skype™ schicken
Standard

Zitat:
Zitat von Jogibär
Zitat:
nach Stundenlanger Diskusion mit meinen Provider, der sich weigert register_globals auf Off zu setzen
Wenn das kein Grund ist, den Provider zu wechseln....
Nö isses leider net, ist verdammt günstig, und auch so gute Konditionen, aber eben einen sche*** support...
__________________
Mfg Tomtaz
"Es soll jetzt diese Erfindung geben.... Kugel oder so heißt die. Ist so eine Art Suchmaschine..."
tomtaz ist offline  
Alt 02.06.2007, 00:32  
Moderator und Wett-König
 
Benutzerbild von dr.e.
 
Registriert seit: 21.05.2008
Beiträge: 3.657
PHP-Kenntnisse:
Fortgeschritten
dr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblick
dr.e. eine Nachricht über Skype™ schicken
Standard

Hallo tomtaz,

ich würde mir die Requests, die deine Seite erreichten mal genauer analysieren. Vielleicht findest du in den URLs Hinweise, die auf Intrusion gegen dein Formular hindeuten.

Da ich nicht weiß, wie deine Formulare in deiner Software gehandelt werden, kann ich hier auch keinen konkreten Hinweis geben. In meinem Fall würde ich beim Aufbau des Formulars einen weiteren Tag einbinden, der mir die Request-Variablen auf Inhalt prüft. Man könnte das sogar für jedes Formular generisch implementieren. Code-Beispiele kamen ja bereits oben. Nur würde ich hier nur nicht alle Globals resetten, sondern an Hand des Formulars entscheiden, was zurückgesetzt werden sollte.
__________________
Viele Grüße,
Dr.E.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Think about software design before you start to write code!
2. Discuss and review it together with experts!
3. Choose good tools (-> Adventure PHP Framework (APF))!
4. Write clean and reusable software only!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dr.e. ist offline  
Alt 02.06.2007, 00:42  
Erfahrener Benutzer
 
Benutzerbild von tomtaz
 
Registriert seit: 17.06.2008
Beiträge: 1.762
PHP-Kenntnisse:
Fortgeschritten
tomtaz ist einfach richtig netttomtaz ist einfach richtig netttomtaz ist einfach richtig netttomtaz ist einfach richtig netttomtaz ist einfach richtig nett
tomtaz eine Nachricht über ICQ schicken tomtaz eine Nachricht über Skype™ schicken
Standard

Im Prinzip kann man solche Codes eh doch nur mittels den GET-Variablen beeinflussen oder?

Ich poste hier mal den Quelltext für die auswertung:

PHP-Code:
if ( $_GET['act'] == )
{
    if ( 
$_POST['send'] )
    {
        if ( ! 
trim($_POST['name']) )
            
$error .= '- Keinen Namen angegeben
'
;
        
        if ( 
trim($_POST['email']) && ! ereg("^[_a-zA-Z0-9-](\.{0,1}[_a-zA-Z0-9-])*@([a-zA-Z0-9-]{2,}\.){0,}[a-zA-Z0-9-]{1,}(\.[a-zA-Z]{2,4}){1,2}$"$_POST['email']) )
            
$error .= '- Die E-Mail Adresse die sie angegeben haben ist nicht korrekt
'
;
        
        if ( 
trim($_POST['web']) && ! preg_match('#((http|ftp|https|ftps)://)(.*?)(\.[a-zA-Z]{2,})#eiU'$_POST['web']) )
            
$error .= '- Die Web-Adresse die Sie angegeben haben ist nicht korrekt. Webadressen müssen mit "http://" beginnen
'
;
        
        if ( ! 
trim($_POST['message']) )
            
$error .= '- Sie haben keine Nachricht eingegeben.
'
;
        
        if ( 
trim($_POST['message']) && strlen(trim($_POST['message'])) < )
            
$error .= '- Sie haben eine zu kurze Nachricht eingegeben. Mindestens müssen 3 Zeichen vorhanden sein.
'
;
        
        if ( 
trim($_POST['message']) && strlen(trim($_POST['message'])) > $global['guestbook_max'] )
            
$error .= '- Die eingegebene Nachricht ist zu lange. Maximal sind ' $global['guestbook_max'] . ' Zeichen erlaubt!
'
;
        
        if ( 
$_SESSION['captcha'] && $_POST['secure'] != $_SESSION['captcha'] )
            
$error .= '- Der eingebene Sicherheitscoe stimmt nicht überein';
        
        
        
//
        // No check for an F5 attack
        //
        
list($now) = $db->query_first("
            SELECT COUNT(*)
            FROM " 
$db_präfix "_guestbook
            WHERE ip='$_SERVER[REMOTE_ADDR]'
            AND date > (UNIX_TIMESTAMP() - $global[guestbook_floodcontrol] )
        "
);
        if ( 
$now )
            
$error .= '- Sie haben sich in das Gästebuch innerhalb kürzester Zeit eingetragen. Versuchen Sie es später erneut!
'
;
            
        if ( ! 
$error )
        {
            
//
            // Ok Save it
            //
            
$db->query("
                INSERT INTO " 
$db_präfix "_guestbook
                (name, email, url, message, city, date, active, ip) 
                VALUES
                ('" 
trim($_POST['name']) . "', '" trim($_POST['email']) . "', '" trim($_POST['web']) . "', '" addslashes(trim($_POST['message'])) . "', '" trim($_POST['whois']) . "', UNIX_TIMESTAMP(), '" . ($global['guestbook_admin'] ? '0' '1') . "', '$_SERVER[REMOTE_ADDR]')
            "
); 
__________________
Mfg Tomtaz
"Es soll jetzt diese Erfindung geben.... Kugel oder so heißt die. Ist so eine Art Suchmaschine..."
tomtaz ist offline  
Alt 02.06.2007, 13:40  
Erfahrener Benutzer
 
Registriert seit: 08.11.2004
Beiträge: 2.079
Der_Gerhard ist zur Zeit noch ein unbeschriebenes Blatt
Der_Gerhard eine Nachricht über ICQ schicken
Standard

Zitat:
Zitat von Jogibär
Zitat:
nach Stundenlanger Diskusion mit meinen Provider, der sich weigert register_globals auf Off zu setzen
Wenn das kein Grund ist, den Provider zu wechseln....
Der Provider hat ja vermutlich noch mehr Kunden auf dem Server gehostet und will sich den Ärger mit unfähigen bzw. uneinsichtigen Programmierern vermeiden.

Aber der Server-Fehler, wenn register_globals per .htaccess deaktiviert wird, wäre mal ein Grund, nochmal beim Provider anzufragen. Das sollte der mal geregelt kriegen.
__________________
**********************************
Nein, ich bin nicht die Signatur.
Ich putze hier nur.
**********************************
Der_Gerhard 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
Frage zur dauerhaften voting sperre! litterauspirna PHP Tipps 2008 19 29.05.2008 16:19
Frage zu spam bots und captcha litterauspirna PHP Tipps 2008 6 20.05.2008 23:56
Smarty frage: switch($action) PHP Tipps 2007 5 30.12.2006 18:07
Frage zu einem mySQL/php/html Konstrukt &lt;Daniel&gt; PHP Tipps 2006 5 11.07.2006 16:07
Frage zu Counter PHP Tipps 2006 1 17.02.2006 21:45
Frage zu grafiken JohnRambo PHP Tipps 2005-2 23 16.08.2005 20:57
.htaccess - Frage Stümper PHP Tipps 2005 11 30.05.2005 11:56
Performence Frage PHP-Fortgeschrittene 10 06.05.2005 19:00
Frage zu einem Editformular PHP Tipps 2005 3 25.04.2005 14:58
mal ne Frage PHP Tipps 2005 7 14.04.2005 09:46
Hallo und Frage zu dynamischer Veränderung in Textfeldern. PHP Tipps 2004-2 2 27.12.2004 22:29
[Erledigt] Frage zur Funkrionen? PHP Tipps 2004-2 10 01.12.2004 09:42
Frage zum Einfügen von Fotos PHP Tipps 2004 11 26.09.2004 14:28
[Erledigt] Frage! PHP Tipps 2004 4 27.07.2004 11:25
[Erledigt] fputs frage PHP Tipps 2004 2 16.07.2004 19:26

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
vote ip sperre, php \variablen mit null initialisieren\, register_globals an oder aus

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