заметки на полях

Блокнот разработчика

Backup проекта

Люди делятся на тех кто еще не делает
и тех, кто уже делает бэкапы

Обязательным свойством любого проекта являются резервное сохранение данных. И так, приступим. Допустим все данные у нас хранятся в БД (в моем случае mysql, но если это postgres – отличие будет в одной строчке) и существуют различные файлы загружаемые пользователями. Файлы проекта хранятся в репозитории, поэтому за их сохранность можно не беспокоиться (можно на всякий случай еще сохранять конфиг). Так же понадобится другая машина для сохранения бэкапов, более чем достаточно иметь FTP на другой машине.

UPD: Немного подчищен код и приведен к соответствию соглашениям.

Read more »

Вывод ошибок PHP в логи nginx

После того как не осталось Apache, то и негде посмотреть ошибки PHP привычным способом (в логах Апача); сделаем что бы nginx вел лог ошибок PHP. nginx перехватывает то, что ему пришло от php-fastcgi на stderr и пишет это в лог Read more »

Юмор: защита сайта от взлома

Встретилось в контексте защиты сайта. 2 предложенных варианта фильтрации входящих данных, один другого хлеще :)

1
2
3
4
5
6
7
8
9
10
11
12
13
foreach($_GET as $key => $val) {
$$key = stripslashes(strip_tags(htmlspecialchars($val, ENT_QUOTES)));
}
foreach($_POST as $key => $val) {
if (gettype ($val)!='array') {
$$key = stripslashes(strip_tags(htmlspecialchars($val, ENT_QUOTES)));
} else {
foreach($val as $k => $v) {
$$val[$k] = stripslashes(strip_tags(htmlspecialchars($v, ENT_QUOTES)));
}
$$key=$val;
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
$post_arr=implode('.',$_POST);
$get_arr=implode('.',$_GET);
$cook_arr=implode('.',$_COOKIE);
$post_arr_key=implode('.',@array_flip($_POST));
$get_arr_key=implode('.',@array_flip($_GET));
$cook_arr_key=implode('.',@array_flip($_COOKIE));
$other_shtuki=@file_get_contents('php://input');
$cracktrack = strtolower($post_arr.$get_arr.$cook_arr.$post_arr_key.$get_arr_key.$cook_arr_key.$other_shtuki);
$wormprotector = array('union','select','substring','/**/'); //тут дополни по своему вкусу кейворды SQL- и PHP-инжекторов
$checkworm = str_replace($wormprotector, '*', $cracktrack);
if ($cracktrack != $checkworm)
die("");
?>

С бескрайних просторов searchengines

php + memcached

Установим все что может понадобиться для использования связки php + memcached.
Read more »

Firefox 3.5 по умолчанию на Ubuntu 9.04

После установки пакета firefox-3.5 по умолчнаю остается 3-я версия, исправим это.
Read more »

Nginx + PHP-FastCGI или избавляемся от apache

В предыдущем шаге мы уже убрали apache слушать только локальные запросы (те которые приходят от nginx) теперь же пришло время убрать его совсем и заставить nginx обрабатывать все самому!
Read more »

Настройка nginx + apache на debian

Основная задача – что бы apache слушал запросы на
127.0.0.1:81 #порт можно взять и другой, к примеру 8080
а nginx слушал запросы с внешних адресов на 80 порту, разбирал статику или еще какие действия выполнял, а остальные запросы прокидывал на apache на локальный адрес 127.0.0.1 и 81 порт

Read more »

Первые шаги в GIT – создаем репозиторий

Цели и задачи: имеем локальную копию проекта и копию на сервере. Хотелось бы объединить все это в общий репозиторий, в результате чего на локальной машине и сервере будет версия этого самого репозитория.

Read more »

mysqldump и проблемы с кодировкой

Делая дамп совершенно обычным способом

1
mysqldump ads -u <user> -p > dump.sql

Заметил маленькую неприятность, что дамп получается со сбитыми кодировками. Добавление к параметра

--default-character-set=utf8

облегчения не принесло и не возымело надо сказать вообще никакого эффекта. После небольшого периода гугления выяснилось, что дело не в утилите mysqldump, а в настройках кодировок на сервере. Read more »

Git теперь и для eclipse

Наконец то появился git плагин для eclipse. Правда пока только экспериментальная версия и с весьма ограниченным функционалом, но все таки уже что-то.

Список задач в разработке довольно велик. Вот к примеру некоторые из них: Поддержка других модулей – в настоящее время проект, использующий другие модули для работы с git, не может быть склонирован или управляться из egit. Даже если проект склонирован (получен) вне пределах eclipse, то не сработает комит из egit Поддержка веток – создание, удаление… Работа с тегами и gitignore, .  С полным списком можно ознакомиться здесь: EclipsePluginWishlist

Для установки последней версии плагина необходимо в список источников добавить http://www.jgit.org/update-site и выбрать необходимый пакет.