php

Борьба с хакерскими атаками на PHP сайты

in

Защита от сканирования

При атаке в первую очередь запускается сканирование сайта

Для этого можно использовать библиотеку PHP IDS (Intruder Detection System) -

1. Библиотеку копируем в корень приложения в каталог IDS

2. Настраиваем конфиг файл (переименовываем IDS/Config.ini.php в IDS/Config.ini)

3. Прописываем base_path - абсолютный путь к IDS

4. Ставим use_base_path = true

5 Интегрируем вызов в всое web-приложение до обработчика параметров запроса (например в начало index.php)

Удаленная отладка PHP из Eclipse

 

Установка:

В Ubuntu/Debian для установки необходимо проделать следующие действия

sudo -s #входим в режим администратора

apt-get install php-pear #устанавливаем pecl

apt-get install php5-dev  #требуется для установки phpize

apt-get install make #требуется для установки утилиты компиляции make

pecl install xdebug #устанавливаем модуль отладки xdebug

Настройка:

В файле /etc/php5/apache2/php.ini добавляем строки

zend_extension=/usr/lib/php5/20060613+lfs/xdebug.so #путь должен быть абсолютным

PHP Работа с XML

in

XML DOM

В PHP за работу с XML в режиме DOM отвечает расширение (extension) domxml. В windows по умолчанию оно выключено. Чтобы его включить надо в php.ini раскомментировать строки extension=php_domxml.dll и extension=php_iconv.dll

Кроме того стоит скопировать все файлы из php/dlls в windows/system32

Чтобы создать пустой DOM в памяти для XML существует функция domxml_new_doc При этом в любом xml должен быть корневой элемент, который лучше создать сразу

PHP - Передача DateTime параметров веб-сервису на .NET

.NET требует передавать параметры типа DateTime в формате YEAR-MONTH-DAYTHOUR:MINUTES:SECUNDS

Пример на PHP:

$dt = $cur_issue->DateStr("Y-m-d"); //Add time as SOAP needed

$dt .= \'T\';

$dt .= $cur_issue->DateStr("H:i:s");

Дата будет вида 2007-06-04T11:24:56

PHP Proxy HTML контента

in

<?php
//ini_set (\'error_reporting\', E_ALL);
//ini_set (\'display_errors\', \'on\');

function CachedFileImport($cachefilename, $filename, $cachelivetime, $newbaseurl)
{
//cached newspaper import
$cachedtime = filemtime($cachefilename);
//update cache every minute
// echo $cachedtime.\'-\'.time();
$isUpdateCache = time()- $cachedtime > $cachelivetime;
$text = "";
if(!$isUpdateCache){
$text = ImportFile($cachefilename);
}

PHP - Работа с ftp

in

Рекурентное создание каталогов

Для рекурентного создания каталогов лучше устанавливать перед созданием каждого промежудочного каталога текущим каталог \'/\'.

For recurrent following function work better.

Some ftp servers (like WarFTP) become demented if you\'ll try mkdir not from root dir and if path will be relative.

The second if one of dir (like \'/\') already exist You\'ll get access denied.

PHP использование серверов Oracle

in

 

Для доступа к базам Oracle в PHP есть два расширения php_oracle и php_oci8

php_oracle - базовый интерфейс, считается устаревшим. php_oci8 работает по протоколу OCI8 (работает с версиями Oracle 7.x/8.x/9.x) более гибок. Он поддерживает связывание глобальных и локальных переменных с меками Oracle, полностью раелизует поддержку LOB, FILE и ROWID, а также позволяет использовать переменные определенные пользователем.

PHP классы

in

Общее

В эру объектно ориентированного подхода к созданию ПО выживают языки программирования с поддержкой ОО. В PHP она реализована хоть и не вполне удачно (версия 4.0) но достаточно для большей части жизненных случаев. Похоже это на java. В 4-ой версии не хватает деструкторов (они появились в PHP5).

PHP vs. ASP - передача параметров из форм в массив

in

PHP

Чтобы передать массив параметров в из формы имена полей должны заканчиваться на []

Пример:

В форме:
<input name="opts[mode]" value="1">
<input name="opts[]" value="1">
<input name="opts[]" value="2">
В скрипте:$opts;$opts["mode"];

ASP

Когда несколько полей формы имеют одинаковое имя, скрипту передается массив

PHP - пишем свое расширение (extension)

in

Первые шаги

Под windows расширение php удобнее всего компилировать из под MS Visual Studio. Это вызвано тем, что сам PHP компилируется в этой среде и его заголовки под windows заточены для VS.

1 Сначала необходимо скачать исходники PHP

. У меня раскрылся только файл запакованный bz. tgz почему-то упрямо выдавал ошибку CRC (скорее всего из-за разной реализации распаковщика под windows и linux).
RSS-материал