EpicWEB.pl

webdesign, programowanie, phat lewt!

Ostatni projekt

ddrpl.com

Ostatnie wiadomości

CRON na Home.pl

Home.pl jest jednym z nielicznych, popularnych, usługodawców, którzy udostępniają usługę CRON. No, prawie - jest to ich implementacja, która polega na okresowym wywoływaniu plików PHP, Perla, Pythona lub CGI - dzięki temu możemy zaimplementować np. automatycznie rozsyłający się newsletter etc.

W swojej dokumentacji Home.pl stwierdza:

Środowisko uruchomieniowe skryptów jest identyczne ze środowiskiem, w jakim uruchamiane są skrypty na serwerach wirtualnych. W praktyce wywołanie takie niewiele różni się od zwykłego wywołania GET po protokole HTTP.

Dla mojej małej główki równa się to z czymś takim:

telnet mojadomena.pl 80
GET /cron-hourly.php HTTP/1.1
Host: mojadomena.pl
Connection: Close

Co się jednak okazuje? Panowie z Home poszli na łatwiznę i nawet o tym nie wspomnieli - otóż CRON po prostu skanuje FTP w poszukiwaniu odpowiednich plików i wywołuje je przez interpreter CLI.

Efekt? Zmienna $_SERVER['HTTP_HOST'] ma złą wartość - zamiast mojadomena.pl znajdziemy tam home.pl - i tak, dowiedziałem się o tym "the hard way" kiedy nagle dostałem maila, który zamiast z adresu info@mojadomena.pl przyszedł z info@home.pl

Update - okazuje się, że problemem nie jest zła informacja w HTTP_HOST, ale jej .. brak. A w tym wypadku Home sam dodaje swoją domenę do adresu. Poniżej przykład wysyłanych informacji (wysłane print_r($_SERVER) na mój adres (zamieniłem login serwera na "LOGIN" w celu ochrony prywatności):

To: btm@anfo.pl
Subject: Cron na home
From: info@home.pl

Array
(
    [QUERY_STRING] => 
    [REQUEST_METHOD] => GET
    [REMOTE_HOST] => localhost
    [REMOTE_ADDR] => 127.0.0.1
    [DOCUMENT_ROOT] => /
    [SERVER_SOFTWARE] => IdeaCron
    [SERVER_PROTOCOL] => HTTP/1.0
    [GATEWAY_INTERFACE] => CGI/1.1
    [PATH] => /bin
    [TMP] => /tmp
    [TMPDIR] => /tmp
    [SERVER_ID] => LOGIN@home
    [SERVER_NAME] => LOGIN.home.pl
    [SERVER_ADMIN] => LOGIN@home.pl
    [SCRIPT_NAME] => /cron-5min.php
    [SCRIPT_FILENAME] => /cron-5min.php
    [REQUEST_URI] => /cron-5min.php
    [PATH_INFO] => /cron-5min.php
    [PATH_TRANSLATED] => /cron-5min.php
    [PHP_SELF] => /cron-5min.php
    [REQUEST_TIME] => 1253531102
    [argv] => Array
        (
        )

    [argc] => 0
)

Komentarze

1

Komentarz użytkownika jachacy

21 09 2009

Nielicznych? Na wielu serwerach widziałem go dostępnego.

Avatar użytkownika 2

Komentarz użytkownika Bartosz "BTM" Szczeciński

21 09 2009

To patrzeliśmy na inne serwery (hint: dla małych firm, takie do 100zł rocznie). Anyhows - nie o tym piszemy, sio ;p

Avatar użytkownika 3

Komentarz użytkownika mt3o

21 09 2009

info@home.pl? To można do fiszingu wykorzystać! :>
Jak na taką poważną firmę, to nie do pomyślenia trochę jest. Nie jest to fuckup skali wykopu, ale też spory. Ciekawe ile osób się nadzieje ma mail z domeny @home.pl z informacją o konieczności zmiany hasła czy zbliżającym się terminie płatności...

Avatar użytkownika 4

Komentarz użytkownika Airborn

21 09 2009

zgłosiłeś panom z home:>

Avatar użytkownika 6

Komentarz użytkownika Airborn

21 09 2009

ciekawe, czy się przyznają do błędu, czy może to taki ficzer ;)

Avatar użytkownika 8

Komentarz użytkownika Piotr Szyczak

21 09 2009

Panie, będzie Blip efekt, Konieczny na swoim bliplogu zalinkował Cię http://blip.pl/s/16576726

9

Komentarz użytkownika rozie

21 09 2009

Tak czy inaczej sformułowanie "nielicznych" w stosunku do udostępniania crona jest mylące i IMHO nie na miejscu. Z polskich hostingów, które kojarzę (nazwa.pl, ogicom.pl, home.pl) wszystkie dają crona (cykliczne wykonywanie zadań)...

Avatar użytkownika 10

Komentarz użytkownika mina86

21 09 2009

Wysyłając list możesz podać dowolny nagłówek From, więc to czy Home coś by dodawał czy nie przed niczym nie uchroni. Sam opis usługi może być faktycznie mylący, bo z jednej strony "jest identyczny", a z drugiej "niewiele się różni" (a więc trochę się jednak różni), ale nie zakwalifikowałbym tego jako błąd samej implementacji, a raczej niedoprecyzowanie dokumentacji.

Avatar użytkownika 11

Komentarz użytkownika BTM

21 09 2009

@mina86: w moim poście nie piętnuje tego, że mogę zespoofować nagłówek from (chociaż ISP i to mogą zabezpieczyć), ani to, że jest to błąd implementacji - właśnie o to, że jest to błąd dokumentacji jest tu moim głównym zarzutem.

12

Komentarz użytkownika Mario

22 09 2009

Przydatny post :)

13

Komentarz użytkownika Wcinacz

24 09 2009

Teraz trzeba oczekiwać masowych newsletterów

Zostaw komentarz