Ankündigung

Einklappen
Keine Ankündigung bisher.

Frage zu register_globals

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • 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?
    [B]Mfg Tomtaz[/B]
    [I]"Es soll jetzt diese Erfindung geben.... Kugel oder so heißt die. Ist so eine Art Suchmaschine..." [/I]:!::shock:

  • #2
    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.

    Kommentar


    • #3
      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.

      Kommentar


      • #4
        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...
        [B]Mfg Tomtaz[/B]
        [I]"Es soll jetzt diese Erfindung geben.... Kugel oder so heißt die. Ist so eine Art Suchmaschine..." [/I]:!::shock:

        Kommentar


        • #5
          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.
          [COLOR="#F5F5FF"]--[/COLOR]
          [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
          „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
          [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
          [COLOR="#F5F5FF"]
          --[/COLOR]

          Kommentar


          • #6
            nach Stundenlanger Diskusion mit meinen Provider, der sich weigert register_globals auf Off zu setzen
            Wenn das kein Grund ist, den Provider zu wechseln....

            Kommentar


            • #7
              Zitat von Jogibär
              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...
              [B]Mfg Tomtaz[/B]
              [I]"Es soll jetzt diese Erfindung geben.... Kugel oder so heißt die. Ist so eine Art Suchmaschine..." [/I]:!::shock:

              Kommentar


              • #8
                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 [B]before[/B] you start to write code!
                2. Discuss and review it together with [B]experts[/B]!
                3. Choose [B]good[/B] tools (-> [URL="http://adventure-php-framework.org/Seite/088-Why-APF"]Adventure PHP Framework (APF)[/URL][URL="http://adventure-php-framework.org"][/URL])!
                4. Write [I][B]clean and reusable[/B][/I] software only!
                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

                Kommentar


                • #9
                  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]')
                              "
                  ); 
                  [B]Mfg Tomtaz[/B]
                  [I]"Es soll jetzt diese Erfindung geben.... Kugel oder so heißt die. Ist so eine Art Suchmaschine..." [/I]:!::shock:

                  Kommentar


                  • #10
                    Zitat von Jogibär
                    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.
                    **********************************

                    Kommentar


                    • #11
                      Wann wird denn die Variabel '$_SESSION['captcha']' initialisiert?
                      Code:
                      if ( $_SESSION['captcha'] && $_POST['secure'] != $_SESSION['captcha'] ) 
                                  $error .= '- Der eingebene Sicherheitscoe stimmt nicht überein';
                      Kann es sein das dir das hier fehlt?
                      Code:
                      if ( $_SESSION['captcha'] && $_POST['secure'] != $_SESSION['captcha'] ) 
                                  $error .= '- Der eingebene Sicherheitscoe stimmt nicht überein'; 
                      
                      
                      if ( empty($_SESSION['captcha']) ) {
                                  $error .= '- Fehlermeldung'; 
                      }

                      Kommentar


                      • #12
                        Hallo Clan, die $_SESSION['captcha'] wird bei der Bilderstellung initialisiert.
                        [B]Mfg Tomtaz[/B]
                        [I]"Es soll jetzt diese Erfindung geben.... Kugel oder so heißt die. Ist so eine Art Suchmaschine..." [/I]:!::shock:

                        Kommentar


                        • #13
                          Zitat von tomtaz
                          Hallo Clan, die $_SESSION['captcha'] wird bei der Bilderstellung initialisiert.
                          Und was soll ein Spam-Script davon abhalten direkt das "Speichern"-Script aufzurufen?

                          Du musst also schon, wie Der_Gerhard schon gesagt hat, prüfen ob die Session-Variable gesetzt wurde und die Anfrage so wirklich von deinem Formular kommt...
                          [URL="https://www.quizshow.io/"]Create your own quiz show.[/URL]

                          Kommentar

                          Lädt...
                          X