Альтруист



ncix 21 сентября 2012 в 11:46 #
Те самые «гениальные» тихо отрефакторят всё за ночь без вашего ведома на свой страх и риск, а на утро будут счастливые, как младенцы, спать перед монитором

everzet 21 сентября 2012 в 16:29 #
Говорю вам как программист повидавший виды в разных компаниях мира. Альтруизм — дело неблагодарное, неприбыльное, изматывающее и, наконец, несуществующее. Сегодня он «без вашего ведома на свой страх и риск» «отрефакторил все за ночь», а завтра пойдет искать другую контору, потому что на этой его не ценят и в нем не нуждаются.

ncix 21 сентября 2012 в 16:39 #
Совершенно верно, так и будет.

VolCh 21 сентября 2012 в 18:31 #
Но код останется отрефакторенным :) Но вообще говоря такой альтруист может очень долго менять компании. В вакансиях очень редко встречаешь рефакторинг в перечне основных обязанностей разработчика, что означает, что менджмент не считает его важным элементом процессов разработки и/или поддержки и с большой вероятностью рабочее время на это выделяться не будет. Увы :(

Flammar 21 сентября 2012 в 18:37 #
Думали, альтруист, а чувак скиллы прокачивал…

CVE-2011-1764: Уязвимость Exim DKIM Signatures Remote Format String

Пару минут назад я заметил, этот твит Джошуа Дж. Дрейк (ака jduck). Это действительно интересная уязвимость Exim MTA. Так что, как мы можем прочитать в отчете об ошибке, проблема о которой сообщил Джон Р. Левин, как неправильное толкование DKIM подписи. Более пристальный взгляд в src/dkim.c показывает, что это был классическая уязвимость форматной строки.

void dkim_exim_verify_finish(void) {
   pdkim_signature *sig = NULL;
   int dkim_signers_size = 0;
   int dkim_signers_ptr = 0;
   dkim_signers = NULL;
 
   /* Delete eventual previous signature chain */
   dkim_signatures = NULL;
 ...
     /* Log a line for each signature */
     uschar *logmsg = string_append(NULL, &size, &ptr, 5,
 
      string_sprintf( "DKIM: d=%s s=%s c=%s/%s a=%s ",
                      sig->domain,
                      sig->selector,
                      (sig->canon_headers == PDKIM_CANON_SIMPLE)?"simple":"relaxed",
                      (sig->canon_body    == PDKIM_CANON_SIMPLE)?"simple":"relaxed",
                      (sig->algo          == PDKIM_ALGO_RSA_SHA256)?"rsa-sha256":"rsa-sha1"
                    ),
 ...
    logmsg[ptr] = '\0';
    log_write(0, LOG_MAIN, (char *)logmsg);
 ...
  }
}

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

-    log_write(0, LOG_MAIN, (char *)logmsg);
+    log_write(0, LOG_MAIN, "DKIM: %s", logmsg);


Кроме того, поскольку «DKIM:» строка была перенесена в log_write() он был удален из исходного string_sprint(), показанный ранее…
-      string_sprintf( "DKIM: d=%s s=%s c=%s/%s a=%s ",
+      string_sprintf( "d=%s s=%s c=%s/%s a=%s ",


6 мая, 2011 года
перевод гуглом с xorl.wordpress.com/2011/05/06/exim-dkim-signatures-remote-format-string/
Читать дальше

Debian snont настройка

Официальная документация по настройке www.snort.org/assets/167/deb_snort_howto.pdf

Change these lines:
Line #39 — ipvar HOME_NET 192.168.1.0/24 – make this match your internal (friendly) network
Line #42 — ipvar EXTERNAL_NET !$HOME_NET
Line #80 — var RULE_PATH ./rules – this assumes /etc/snort/rules
Line #186-#190 comment out all of the preprocessor normalize_ lines
Line #366 — add this: output unified2: filename snort.log, limit 128
Line #395 — delete or comment out all of the “include $RULE_PATH” lines except “local.rules”

для новой версии snort-2.9.1.tar.gz

Change these lines:
Line #45 — ipvar HOME_NET 192.168.1.0/24 – make this match your internal (friendly) network
Line #48 — ipvar EXTERNAL_NET !$HOME_NET
Line #98 — var RULE_PATH ./rules – this assumes /etc/snort/rules
Line #235-#239 comment out all of the preprocessor normalize_ lines
Line #471 — add this: output unified2: filename snort.log, limit 128
Line #503 — delete or comment out all of the “include $RULE_PATH” lines except “local.rules”

./configure --with-mysql --with-libpcre-libraries=/usr/src/snort/libdnet-1.12/src/.libs/ --with-dnet-includes=/usr/src/snort/libdnet-1.12/include/ --enable-build-dynamic-examples --enable-gre --enable-reload --enable-linux-smp-stats --enable-zlib --enable-dynamicplugin --enable-perfprofiling --enable-ipv6
Читать дальше

Dklab_Realplexor для Apache и 2 IP

Допустим у нас есть 2 сетевые карты, обе видны в интернете. Переводим все сайты в DNS на IP 85.233.100.1
85.233.100.1
85.233.200.2
Создаём в DNS chat.localhost.com и указываем IP 85.233.200.2

Настройка Apache

Оставнавливаем Apache
# /etc/init.d/apache2 stop


Идем в директорию /etc/apache2/ и меняем в фаиле ports.conf строчку
Listen 80 на Listen 85.233.100.1:80 если её нет то добавляем.

NameVirtualHost 85.233.100.1:80

Чтобы Apache слушал порт 80 на итрерфейсе сетевой карты 85.233.100.1 а другой адрес не использовался.
Читать дальше

Dklab_Realplexor настройка (часть 5)

Тестирование Java Script



Копируем каталог /opt/dklab_realplexor/ полностью!
в /var/www/localhost.com/

Если нет модуля Apache mod_pref то
Редактируем фаил /var/www/localhost.com/t/jstest/contrib/init.php
Меняем 16 строчку
<?=$_SERVER['HTTP_HOST']?> на localhost.com

Читать дальше

Dklab_Realplexor настройка (часть 4)

Запуск Чата


Копируем фаилы из каталога /opt/dklab_realplexor/t/demo/ в /var/www/localhost.com/

Редактируем фаил _common.php
строчку:
require_once "../../api/php/Dklab/Realplexor.php";
на
require_once «Realplexor.php»;

Фаил /opt/dklab_realplexor/api/php/Dklab/Realplexor.php копируем в /var/www/localhost.com/Realplexor.php

Читать дальше

Dklab_Realplexor настройка (часть 3)

Настройка dklab_realplexor


Скачиваем, переходим в каталог с dklab_realplexor
# cd /opt
# wget http://github.com/DmitryKoterov/dklab_realplexor/tarball/master
# tar zxf *realplexor*.tar.gz
# mv *realplexor*/ dklab_realplexor


Создаём символическую ссылку конфигурационного фаила в /etc/dklab_realplexor.conf. Чтобы при зауске сервиса в ручную и автоматически подгружался один и тотже конфигурационный фаил.
# ln -s /opt/dklab_realplexor/dklab_realplexor.conf /etc/dklab_realplexor.conf


Меняем значения: /etc/dklab_realplexor.conf на

$CONFIG{WAIT_ADDR} = [ '127.0.0.1:8088' ]; # IP address of chat.localhost.com
Читать дальше

Dklab_Realplexor настройка (часть 2)

Проверка нужных команд

Для начала проверяем существование необходимых программ:
chkconfig
pear
php5-cgi или у кого php5
php5-dev
phpize
php-pear PEAR
dpkg-dev
re2c
gcc
g++


Установка
chkconfig — его использовал для запуска сервисов.
# apt-get install chkconfig


В Debian есть update-rc.d но я им не пользовался. Он тоже для запуска сервисов после перезагрузки.
Читать дальше

Dklab_Realplexor настройка (часть 1)

Вся настройка производится на OS Debian Lenny

Версия Debian Lenny 5.0.5 или болеее новая.

Видео: Установка Debian Lenny из Windows — незнаю непробывал, просто ссылку дал. Даже несмотрел.

Dklab_realplexor новая версия

Инструкция по описанию функиий на сайте автора

Форум для обсуждения

Читать дальше