Calocybe: HTTP::UserAgent gibt bei "http://www" keinen Fehler aus

Beitrag lesen

Hi!

Ich habe mir in Perl ein Gästebuch-Script geschrieben. Dieses Script prüft bei einem neuen Eintrag unter anderem mit Hilfe des HTTP::UserAgent, ob die eingegebene Homepage-URL korrekt bzw. erreichbar ist:

if($response->is_error) {

Was ist, wenn der Zielserver voruebergehend nicht erreichbar ist? Was, wenn ein CGI Script voruebergehend fehlerhaftet arbeitet und mit 500 antwortet?

Wenn nun jemand als Homepage-URL "http://www" oder "http://www/" eingibt, dann gibt HTTP::UserAgent leider keine Fehlermeldung aus. Woran kann das liegen?

Daran, dass das ein voellig korrekte URL ist, und der Server tatsaechlich auch antwortet.

Ueberleg mal, was Dein Script *dort auf dem Server* tut. Es sucht einen Rechner namens www. Nun, www heisst zufaelligerweise der Server *selbst*! Es handelt sich dabei um genau das www, das bei www.domain.com vorne dran steht. Nur da der Server ja selbst innerhalb dieser Domain steht, braucht er diese nicht mit angeben und der Hostname (Rechnername) reicht aus. D.h. im Klartext, der Server richtet die Anfrage *an sich selbst*.

Und reicht es aus, zusätzlich einfach noch zu prüfen, ob $FORM{'homepage'} nicht "http://www" oder "http://www/" enthält, oder gibt es noch andere solcher "Lücken"?

Ja, alle anderen Rechnernamen innerhalb dieser Domain. Nur wird auf den meisten wahrscheinlich kein Webserver laufen, weshalb dort dann doch ein Fehler festgestellt wird.

So long