За месяц Июнь, 2009

Apache, htaccess и настройки PHP (php_value и php_flag)

Правильная (точнее, желаемая) работа PHP интерпертатора зависит от правильной конфигурации. Конфигурационные настройки PHP или директивы php.ini (php_value или php_flag) можно задавать несколькими способами:

  • в файле php.ini (скорее всего, если у Вас не выделенный сервер, то туда Вас не пустят. Хотя, некоторые хостинги предоставляют возможность создать собственный php.ini. Можно уточнить у хостинг-провайдера… Но в любом случае переживать пока рано, ведь это только первый способ;
  • если PHP используется как модуль Apache (или другого веб-сервера), то можно прописать настройки в файле httpd.conf (файл настроек веб-сервера, к которому пользователя простого хостинга тоже навряд ли допустят);
  • в файле .htaccess (в очередной раз речь про web-сервер, к примеру, Apache) - в последнее время обработка этого файла считается нормой для хостинга. И собственные настройки PHP, как правило, устанавливаются в этих файлах;
  • непосредственно в скриптах php с использованием функции ini_set().

Мы рассмотрели все возможные способы задания конфигурационных настроек интерпретатора PHP (Да, если кто знает другие варианты - сообщите.)

Есть еще маленькое “но”. Не все переменные php_value разрешено изменять в файле .htaccess (в зависимости от настроек сервера, изменение конфигурации PHP пользователем вообще может быть запрещено)

Некоторые настройки (:

php_value register_globals on
php_flag session.use_trans_sid off
php_flag session.use_only_cookies on
php_value max_execution_time 60
php_value upload_max_filesize 8M
php_flag display_errors off
php_flag log_errors on
php_value error_reporting 2047
php_value error_log log-file.txt

UPD шпаргалка по разрешениям изменений настроек PHP:
PHP_INI_USER = 1 значение может быть установлено в пользовательских скриптах
PHP_INI_PERDIR = 2 значение может быть установлено в php.ini, .htaccess или httpd.conf
PHP_INI_SYSTEM = 4 значение может быть установлено в php.ini или httpd.conf
PHP_INI_ALL = 7 значение может быть установлено где угодно

Ищем ошибки в PHP-скриптах (белый экран)
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);

Опубликовано Июнь 27, 2009 | автор: levik  |  Комментарий (1) »

Защита информации сайта от копирования

Довольно часто приходится сталкиваться с тем, что в сети появляются сайты как две капли воды похожие на оригиналы.. Конечно, обычно справедливость быстро торжествует, и такой сайт существует не очень долго..

Но сейчас не об этом.

Как защитить сайт от копирования?

0. Первое и самое главное, что следует усвоить: Если сайт можно просмотреть, то его можно и скопировать. Поэтому, вся так называемая защита от копирования, обычно помогает от пользователя неискушенного. Хотя, чаще всего, именно такие и хотят “скопировать” текстовую информацию или картинки с сайта.

Ну что ж.. А теперь перейдем к приемам, которые помогут защитить Ваш сайт от копирования:

1. Запрещаем кэширование страниц сайта. Это можно сделать несколькими способами:
Тэг HTML:
<meta http-equiv="Pragma" content="no-cache" />
или:
<meta http-equiv="Cache-Control" content="no-cache" />
Или
<meta http-equiv="no-cache" />

HTTP-заголовок (header):

Прочитать более подробно о кэшировании страниц

2. Запрещаем вызов контекстного меню в Internet Explorer
<body oncontextmenu="return false;" ondragstart="return false;">

3. Запрещаем выделение текста для копирования в Internet Explorer:

<script language="JavaScript">
document.onselectstart = returnfalse;
//запрещаем выделение
document.ondragstart = returnfalse;
//запрещаем перетаскивание
function returnfalse() {
return false;
}
</script>

4. пользуемся функциями escape | unescape
<script language="javascript">
mystring = "%u0412%u0441%u0442%u0430%u0432%u044C%u0442%u0435%20%u0442%u0435%u043A%u0441%u0442.";
document.write (unescape(mystring));
</script>

5. Для защиты изображений от копирования рекомендуется использовать так называемые водяные знаки или ватермарки (watermark) - наложение на изображение “полупрозрачного” изображения с названием своего сайта, или любого другого изображения, которое “идентифицирует” Вас, как владельца. Многие владельцы сайтов отказываются от копирования изображений с водяными знаками, на которых указан сайт “оригинал”.

6. Для защиты текста сайта от копирования  существуют сервисы, отслеживающие уникальность текста. Например CopyScape.com. Конечно же, по сути, сервис напрямую не защищает текст от копирования, однако, если в сети появится сайт с текстом, который “очень похож” на текст Вашего сайта, Вы об этом узнаете, и сможете сообщить “куда надо” :)

Опубликовано Июнь 17, 2009 | автор: levik  |  Комментарий (1) »

locale и setlocale - устанавливаем локаль

Устанавливаем локаль.  памятка

setlocale(LC_ALL, ‘nl_NL’); // php4, 5

LC_ALL - все функции
LC_COLLATE - функции сравнения строк, см. strcoll()
LC_CTYPE - функции преобразования строк, например strtoupper()
LC_MONETARY - функция localeconv()
LC_NUMERIC - задает символ десятичной точки (см. также localeconv())
LC_TIME - форматирование дат функцией strftime()

Локали

ru_RU.UTF-8
ru_RU.CP1251
ru_RU.KOI8-R
en_US.UTF-8
ru_RU.KOI8-R
uk_UA.UTF-8
uk_UA.KOI8-U
uk_UA.CP1251
UTF-16/CP1251/CP866 (Windows)

В некоторых системах локали генерируются  только строчными буквами и без “минусов”-дефисов (несмотря на регистр при установке):

ru_RU
ru_RU.cp1251
ru_RU.iso88595
ru_RU.koi8r
ru_RU.utf8
russian
ru_UA
ru_UA.koi8u
ru_UA.utf8
Установить локаль (если прав хватит :))
localedef –no-archive -c -f CP1251 -i ru_RU ru_RU.CP1251

Опубликовано Июнь 11, 2009 | автор: levik  |  Комментарии (2) »

Безопасность терминальных служб в WIN 2008

Особенности, ключевые отличия от предыдущих версий:

- доверие серверу;
- MitM и DOS-атаки;
- доверие RDP-файлам;
- шифрование соединений;
- печать из приложений;
- простой вход для пользователей;

NLA - Network Level Authentification:
- окно для ввода данных - “стандартное” окно аутентификации;
- пользователь получает доступ к виртуальному рабочему столу ПОСЛЕ аутентификации! (в отличие от предыдущих версий);

Использование сертификатов для подписывания RDP-файлов;
- сертифицированный файл подписан издателем;
- при многократном запуске имеется возможность запускать без предупреждения;
- неподписанные файлы при попытке запуска вызывают предупреждение.

Технология Easy Print:
- установка драйверов только для клиентов (проблема “старого железа” и новых ОС);

Технология Single Sign On:
- при входе в систему пользователь автоматически получает доступ к терминальным серверам и приложениям без дополнительного запроса учетных данных;
- запуск терминальных служб с рабочей станции;

Несколько способов шифрования
- более современный (ключ 128 бит) - не совместим со старыми версиями RDP Client;
- “Максимально допустимый для клиента”;
- менее защищенный (ключ 52 бита) - совместим со старыми версиями;

Удаленный доступ через TS Gateway:
- ранее возможно было организовать терминальный доступ лишь одним из двух возможных способов - через порт 3389 /либо с использованием VPN;
- TS Gateway позволяет осуществлять доступ к удаленному рабочему столу через 443 порт!
- CAP - Connection Authorisation Policies - Разрешенные методы авторизации, каким пользователям и с каких компьютеров разрешено подключаться + для каких устройств разрешено перенаправление;
- RAP - Resource Authorisation Policies - “Политики ресурсов” - К каким группам компьютеров AD разрешено подключаться (или группам TSG) и через какие порты может происходить подключение

NAP - Network Access Protection
- основанная на стандартах платформа для управления доступом на основе “здоровья” конечных рабочих станций;
- TSG может быть интегрирован в расширенную структуру NAP, либо NAP может использоваться только для удаленного доступа;
- проверка статуса обновлений антивируса/файрволла/обновлений безопасности происходит при подключении к TS Gateway - TS Gateway при помощи NAP производит проверку и либо отклоняет соединение, либо “разрешает”;

Опубликовано Июнь 6, 2009 | автор: levik  |  Нет комментариев »