WARNUNG!
bearbeitet von Regina Schaukrug> 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:
~~~php
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:
~~~php, bad
@mail($mail_to, $mail_subject, $mail_text, $mail_extras);
~~~
Das '@' unterdrückt nämlich Notizen. Das [Error-Reporting](http://php.net/manual/de/function.error-reporting.php) 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:
~~~php, bad
$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. 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.**
WARNUNG!
bearbeitet von Regina Schaukrug> 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:
~~~php
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:
~~~php, bad
@mail($mail_to, $mail_subject, $mail_text, $mail_extras);
~~~
Das '@' unterdrückt nämlich Notizen. Das [Error-Reporting](http://php.net/manual/de/function.error-reporting.php) 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.
2. Das hier ist echt gefährlich:
~~~php, bad
$mail_text .= "<p>User Agent: <b>$visitor_agent</b></p>";
~~~
Hier kann ich (und jeder kleine Chinese) Dir wunderbare Skripte senden. 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.**
WARNUNG!
bearbeitet von Regina Schaukrug> 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:
~~~php
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:
~~~php, bad
@mail($mail_to, $mail_subject, $mail_text, $mail_extras);
~~~
Das '@' unterdrückt nämlich Notizen. Das [Error-Reporting](http://php.net/manual/de/function.error-reporting.php) 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.
2. Das hier ist echt gefährlich:
~~~php, bad
$mail_text .= "<p>User Agent: <b>$visitor_agent</b></p>";
~~~
Hier kann ich (und jeder kleine Chinese) Dir wunderbare Skripte senden. 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.**
WARNUNG!
bearbeitet von Regina Schaukrug> 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 Die eine Notiz. vor die Füße. Lösungen sind klassisch:
~~~php
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:
~~~php, bad
@mail($mail_to, $mail_subject, $mail_text, $mail_extras);
~~~
Das '@' unterdrückt nämlich Notizen.
## Was Du machst ist sehr gefährlich:##
1. Allein schon, dass Du das Mail HTML-formatiert versendest ist ein grober Fehlgriff, weil unnötig.
2. Das hier ist echt gefährlich:
~~~php, bad
$mail_text .= "<p>User Agent: <b>$visitor_agent</b></p>";
~~~
Hier kann ich (und jeder kleine Chinese) Dir wunderbare Skripte senden. 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.**
WARNUNG!
bearbeitet von Regina Schaukrug> 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 Die eine Notiz. vor die Füße. Lösungen sind klassisch:
~~~php
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:
~~~php, bad
@mail($mail_to, $mail_subject, $mail_text, $mail_extras);
~~~
Das '@' unterdrückt nämlich Notizen.
## Was Du machst ist sehr gefährlich:##
1. Allein schon, dass Du das Mail HTML-formatiert versendest ist ein grober Fehlgriff, weil unnötig.
2. Das hier ist echt gefährlich:
~~~php, bad
$mail_text .= "<p>User Agent: <b>$visitor_agent</b></p>";
~~~
Hier kann ich (und jeder kleine Chinese) Dir wunderbare Skripte senden. 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"!
WARNUNG!
bearbeitet von Regina Schaukrug> 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 Die eine Notiz. vor die Füße. Lösungen sind klassisch:
~~~php
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:
~~~php, bad
@mail($mail_to, $mail_subject, $mail_text, $mail_extras);
~~~
Das '@' unterdrückt nämlich Notizen.
## Was Du machst ist sehr gefährlich:##
1. Allein schon, dass Du das Mail HTML-formatiert versendest ist ein grober Fehlgriff, weil unnötig.
2. Das hier ist echt gefährlich:
~~~php, bad
$mail_text .= "<p>User Agent: <b>$visitor_agent</b></p>";
~~~
Hier kann ich (und jeder kleine Chinese) Dir wunderbare Skripte senden. 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.