Regina Schaukrug: WARNUNG!

Beitrag lesen

Hallo

Das unten gezeigte Script gibt einen Fehler aus:

PHP Notice:  Undefined index: ...

Das kommt immer dann vor, wenn es keinen Referer gibt.

Das ist klar. Der Browser sendet keinen Referer wenn es keinen gibt, weil die Seite direkt aufgerufen wurde oder der Besitzer das abgeschaltet hat. Dann ist $_SERVER["HTTP_REFERER"] nicht besetzt und PHP wirft Dir eine Notiz vor die Füße. Lösungen sind klassisch:

if ( isset( $_SERVER["HTTP_REFERER"] ) ) {
    $visitor_referer = $_SERVER["HTTP_REFERER"]; // HTTP Referer-Link
} else {
    $visitor_referer = false;
}

weniger klassisch hast Du bereits weiter unten das unschöne hier abgeschrieben:

@mail($mail_to, $mail_subject, $mail_text, $mail_extras);

Das '@' unterdrückt nämlich Notizen. Das Error-Reporting sollte man anders steuern.

Was Du machst ist sehr gefährlich:##

  1. Allein schon, dass Du das Mail HTML-formatiert versendest, ist ein grober Fehlgriff, weil unnötig. Und das provoziert weitere Gefahren, die sich auch als ausnutzbar erweisen:

  2. Das hier ist echt gefährlich:

$mail_text .= "<p>User Agent: <b>$visitor_agent</b></p>"; 

Hier kann ich (und jeder kleine Chinese) Dir wunderbare Skripte oder eine, sogar mehrere beliebige URLs zu "Grafiken" senden. Etwas wie "<img src="http://192.168.1.0/action.cgi?action=setpassword&password=strastwuite"> Da brauchst Du weder Alexa noch ein Kleinkind um mit Deiner Kreditkarte Leistungen zu bezahlen, die Du gar nicht willst. Außerdem wird Dein DSL- oder Kabelrouter dann möglicherweise kostenlos von einem russischen Dienstleister konfiguriert und überwacht, was dazu führt, dass der Webserver Deiner Bank plötzlich in ein merkwürdiges Rechenzentrum umzieht und sich andere Gedanken um Deine Geldanlagen machen.

Dieses Problem besteht bei allen Daten, welche der User-Agent sendet. Also auch beim Referer, beim HTTP_USER_AGENT, sogar bei der URL.

Derjenige, der das Skript online gestellt hat, ist Künstler, kein Techniker. Das Skript ist "bad, bad bad"!

Nochwas: Bei jedem 404er (NOT FOUND) ein Mail zu bekommen nervt. Das ist das beste daran: Den Mist wirst Du schnell wieder abschalten, was die Gefahren mindert.

0 62

Fehlermeldung bei $visitor_referer = $_SERVER["HTTP_REFERER"];

oxo888oxo
  • php
  1. 0
    Matthias Apsel
    1. 0
      oxo888oxo
      1. 0
        Matthias Apsel
        1. 0
          dedlfix
          1. 0
            Auge
            1. 0
              dedlfix
              1. 0

                $_SERVER["SERVER_NAME"], $_SERVER['HTTP_HOST'] und das DNS

                Regina Schaukrug
                • apache
                • php
                • webserver
                1. 0
                  dedlfix
                  1. 0
                    Regina Schaukrug
    2. 0
      Gunnar Bittersmann
      1. 0
        dedlfix
    3. 0
      pl
      1. 0
        dedlfix
  2. 3

    WARNUNG!

    Regina Schaukrug
    • php
    • sicherheit
    1. 0
      Julius
    2. 0
      oxo888oxo
      1. 0
        dedlfix
        1. 0
          Regina Schaukrug
          1. 3
            dedlfix
            1. 0
              Regina Schaukrug
              1. 1
                Auge
                • sicherheit
                • software
        2. 0
          oxo888oxo
    3. 2
      Reiner Makohl
      1. 0

        Verbesserungen

        dedlfix
        1. 0

          Nochmal weiter angepasst

          oxo888oxo
          1. 0
            dedlfix
            1. 0
              oxo888oxo
        2. 0
          oxo888oxo
          1. 0

            Zeilenumbrüche gehen nicht

            oxo888oxo
            1. 0
              Auge
              1. 0
                oxo888oxo
                1. 0
                  Auge
                  1. 0
                    oxo888oxo
          2. 0
            dedlfix
            1. 0
              oxo888oxo
              1. 0

                Wozu diese komplexen Einzeiler?

                Regina Schaukrug
                1. 0
                  oxo888oxo
                  1. 0
                    Regina Schaukrug
              2. 0
                dedlfix
                1. 0
                  oxo888oxo
        3. 0
          Regina Schaukrug
          1. 0
            Regina Schaukrug
      2. 1
        Regina Schaukrug
        1. 3
          Reiner Makohl
          1. 2
            Tabellenkalk
            • sicherheit
            • zu diesem forum
      3. 0
        Julius
  3. 0

    Doch noch ein Fehler: Undefined variable

    oxo888oxo
    1. 0
      dedlfix
      1. 0
        oxo888oxo
  4. 0

    Neue und endgültige Version?

    oxo888oxo
    1. 0
      dedlfix
      1. 0
        oxo888oxo
    2. 0
      Daniel Duden
      1. 1
        Julius
        • php
        • sprache
      2. 0
        oxo888oxo
  5. 0

    Script nun noch weiter reduziert

    oxo888oxo
    1. 0

      Error-Reporting

      oxo888oxo
      1. 0
        dedlfix
    2. 0
      dedlfix
      1. 0
        Regina Schaukrug
        • php
        • sicherheit
        1. 0
          dedlfix