Archive for the ‘ Web ’ Category

Ubuntu 14.04 — Downgrade PHP to 5.2 version

Столкнулся на работе с переносом древнего проекта написанного на PHP 5.2 Пробовал запустить его на свежем пыхе — не получилось. Пообщавшись с разработчиком выяснил что взлетит только на PHP 5.2 Особо вникать не стал … надо так надо! Хостер предоставил чистенькую виртуалочку с Ubuntu 14.04 Вот так пришлось извернуться чтобы на свеженькую убунту поставить пых закостенелой версии. Читать полностью

Тюнинг Mozilla Firefox «Под анонимность!»

Для правки скрытых параметров в Firefox нужно набрать в адресной строке about:config. Все что перечислено ниже — настраивается именно там:

— Запрещает поддержку протокола WebRTC, текущая реализация которого позволяет незаметно для пользователя получить список IP-адресов в его локальной сети (с помощью JavaScript), что повышает уникальность пользователя. Подробнее …

media.peerconnection.enabled = false

 

— Отключает передачу информации о посещаемых веб-сайтах Гуглу, база которого используется для предупреждений о мошеннических сайтах

browser.safebrowsing.enabled = false
browser.safebrowsing.malware.enabled = false
services.sync.prefs.sync.browser.safebrowsing.malware.enabled = false

 

— Отключает передачу текста, набираемого в окне поиска, поисковой системе без явного подтверждения со стороны пользователя. Лишаемся предложений от поисковой системы по мере набора запроса, но зато, если вы вдруг начали набирать запрос и передумали — он не отправится до нажатия Enter

browser.search.suggest.enabled = false

 

— Отключает передачу браузером информации о времени начала и окончания загрузки страницы. Анализ этих данных позволяет определить факт использования прокси-сервера

dom.enable_performance = false

 

— Запрещает предварительное разрешение имён DNS для всех ссылок на веб-странице (пока пользователь сам не нажмёт на ссылку). Это может привести к утечке DNS-трафика при работе через анонимизирующий прокси-сервер

network.dns.disablePrefetch = true

 

— Отправлять DNS-запросы через прокси при использовании прокси. Иначе они пойдут напрямую и могут привести к раскрытию реального IP-адреса

network.proxy.socks_remote_dns = true

 

— Отключить Seer (см. первый комментарий в топике для подробностей)

network.seer.enabled = false

 

— Запрещает сайтам установку соединений на критически важные порты, занятые I2P и Tor

network.security.ports.banned = 4444,9050,9051

 

— Запрещает отслеживать состояние батареи и тем самым получать информацию, по которой можно идентифицировать пользователя

dom.battery.enabled = false

 

— Запрещает определять параметры соединения с сетью (при этом передаётся тип соединения: LAN, Wifi, 3G и так далее)

dom.network.enabled = false

 

— Запрещает сайтам обращение к локальной машине, что позволило бы им анализировать список открытых портов. Подсмотрено у разработчиков Tor Возможны проблемы при обращении на адреса типа ​http://127.0.0.1:631, используемые для конфигурации принтеров через CUPS и прочих устройств

network.proxy.no_proxies_on = (пусто)

 

— Тоже подсмотрено у Tor. Запрещает передачу сайтам подробной информации о графических возможностях системы

webgl.disable-extensions = true
webgl.min_capability_mode = true

 

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

browser.cache.disk.capacity = 0
browser.cache.disk.enable = false
browser.cache.disk.smart_size.enabled = false
browser.cache.disk_cache_ssl = false
browser.cache.memory.enable = false
browser.cache.offline.capacity = 0
browser.cache.offline.enable = false
dom.indexedDB.enabled = false
media.cache_size = 0
network.http.use-cache = false

 

— Отключает возможность сайтов хранить некоторые настройки (нечто похожее на куки). Однако, после отключения, пропадает возможность пользоваться кэшем Гугла (в поисковике исчезают соответствующие выпадающие меню). Проблема на стороне Гугла

dom.storage.enabled = false

 

— Маскировка браузера под версию 24 LTS и самую распространённую платформу. Не забываем обновлять по мере выхода очередных LTS #

general.appname.override = Netscape
general.appversion.override = 5.0 (Windows)
general.oscpu.override = Windows NT 6.1
general.platform.override = Win32
general.useragent.override = Mozilla/5.0 (Windows NT 6.1; rv:24.0) Gecko/20100101 Firefox/24.0
general.productSub.override = 20100101
general.buildID.override = 20100101
browser.startup.homepage_override.buildID = 20100101

 

— Отключает автоматическое обновление браузера

app.update.auto = false
app.update.enabled = false
app.update.mode = 0
app.update.service.enabled = false

 

— Отключает автоматическое обновление поисковых плагинов

browser.search.update = false

 

— Не отправлять данные о производительности в Mozilla

datareporting.healthreport.service.enabled = false
datareporting.healthreport.uploadEnabled = false
datareporting.policy.dataSubmissionEnabled = false

 

Для борьбы со скриптами и куками рекламных сетей рекомендуются подписки адблока (Enhanced Trackers List, Social List), расширение NoScript (режет все скрипты, пользователь может разрешать скрипты доверенным сайтам, например, разрешить скрипты, лежащие лишь на linux.org.ru, а гуглоаналитику на том же лоре — нет), расширение Cookie Monster (точно также режет все куки, кроме явно одобренных пользователем). К использованию рекомендуется и HTTPS Everywhere от Фонда электронных рубежей, форсирующее использование HTTPS на большом количестве сайтов (только придется рукаи отключить правило для Google services, поскольку оно ломает ютуб после того, как ютуб поменял дизайн).

Рекомендую глянуть на одну из предыдущих заметок про анонимность в Интернет.

P.S. Честно признаюсь — содрано из форума linux.org.ru

Настройка nginx + GeoIP на FreeBSD

Зачем это надо? Да много чего можно наворотить! Например разным странам выдавать разный контент, проксировать трафик на разные сервера и тд. Мне, например, для ограничения нежелательного трафика на некий тестовый web-сервер. Хочу дать туда доступ только из Украины, остальных — в баню!
У меня уже был установлен и настроен nginx, поэтому тут упомяну только о включении в его сборку необходимого модуля.
Для начала я установил GeoIP из портов:

root@gw:~# cd /usr/ports/net/GeoIP
root@gw:/usr/ports/net/GeoIP# make install clean

После этого проверил стоит ли в собранном ранее nginx необходимый флаг HTTP_GEOIP:

root@gw:/usr/ports/net/GeoIP# cd /usr/ports/www/nginx
root@gw:/usr/ports/www/nginx# make config

Читать полностью

Анонимность в сети = Tor + Privoxy + Debian

Думаю не стоит отвечать на вопрос «Для чего это?». В свете последних событий … это становится нормой жизни в Интернет!
Итак, поехали! На машине с Debian stable устанавливаем tor и privoxy.

root@deb:~# apt-get install tor privoxy

После этого настроим privoxy вот так:

root@deb:~# cat /etc/privoxy/config |grep -v ^#
user-manual /usr/share/doc/privoxy/user-manual
confdir /etc/privoxy
logdir /var/log/privoxy
actionsfile match-all.action # Actions that are applied to all sites and maybe overruled later on.
actionsfile default.action   # Main actions file
actionsfile user.action      # User customizations
filterfile default.filter
filterfile user.filter       # User customizations
logfile logfile
listen-address  localhost:8118
toggle  1
enable-remote-toggle  0
enable-remote-http-toggle  0
enable-edit-actions 0
enforce-blocks 0
buffer-limit 4096
forward-socks4a         /       127.0.0.1:9050 .
forwarded-connect-retries  0
accept-intercepted-requests 0
allow-cgi-request-crunching 0
split-large-forms 0
keep-alive-timeout 5
socket-timeout 300

root@deb:~#

Перегружаем privoxy

root@deb:~# service privoxy restart
[ ok ] Restarting filtering proxy server: privoxy.
root@deb:~#

С такой конфигурацией система у меня завелась, осталось в браузере настроить наш приватный прокси.
Пример для firefox/Iceweasel:
Tor + Privoxy

Также в некоторых браузерах есть плагины для более удобного включения/отключения «приватного режима». Например для Firefox/Iceweasel — torbutton и тд и тп … гуглите 🙂

P.S. Очень печально что данную заметку приходится отмечать тэгом «Жизнь».

Хай щастить!

apache-itk-mpm и виртуальный хостинг

Итак, рано или поздно возникает задача в духе: «А как бы нам организовать хостинг нескольких клиентов с их сайтами так чтобы они не имели друг к другу доступа и не было проблем с доступом к файлам через web/ftp/ssh?». Тут уже обычный стандартный apache не справляется и нужно городить некую более сложную конфигурацию. К счастью, задача эта не уникальна и поэтому давным давно есть готовые решения. Одним из них есть модификация apache2 под названием apache-itk-mpm. Он позволяет запускать от имени определенного в конфигах системного пользователя некий виртуалхост апача. Тоесть получаем чтото в духе некоего изолированного контейнера для нужного пользователя или ряда оных. Туманно объяснил, но по конфигам это более понятно. Итак, поехали! Читать полностью

Apache22 и сжатие контента

Решил вот опробовать сжатие контента апачем. Давно присматривался к этий фишке, много положительного слышал … наконец дошли руки настроить.
Делал на FreeBSD 9-той ветки, добавляем в настройки виртуалхоста такое:

root@black:~# cat /usr/local/etc/apache22/extra/httpd-vhosts.conf
<virtualhost *:80>
...............
    <ifmodule mod_deflate.c>
        DeflateCompressionLevel 5
        AddOutputFilterByType DEFLATE application/javascript
        AddOutputFilterByType DEFLATE text/javascript
        AddOutputFilterByType DEFLATE text/css
        AddOutputFilterByType DEFLATE text/html
         </ifmodule><ifmodule mod_setenvif.c>
                BrowserMatch ^Mozilla/4 gzip-only-text/html
                BrowserMatch ^Mozilla/4\.0[678] no-gzip
                BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
         </ifmodule>
   
................
</virtualhost>

После чего пробуем google-chrom-ом зайти на страничку и посмотреть что будет с передаваемыми данными. Для этого открываем консоль разработчика, нажатием Ctrl + Shift + J, и выбираем вкладку «Network» Читать полностью

WordPress Plugin «Spam-stopper» — небольшая модификация.

Помню после создания блога долго не парился над таким вопросом как защита от спам-комментов. Но время шло, и через полгодика-год, мой блог стал собирать около 10-20 спам-комментов в сутки. Конечно же это начало напрягать. Покопавшись в плагинах wp я нашел отличное решение моей проблемы — Spam-Stopper. Этот плагин добавляет проверочный вопрос в форму коммента, коммент принимается на модерацию только когда написать правильный ответ. Вопрос можно сменить в админке wp. Плагин простой но довольно эффективно защищал меня от спама. Но прошло еще гдето полгода и к этой защите боты нашли «лазейку» и комменты поползли в прежнем объеме и даже больше. Я уж подумал что вопрос разгадали — сменил, не помогло …. эх. Но бага (или скорее недочет разработчика) оказалась в работе самого плагина, так как плагин выдавал правильный ответ на контрольный вопрос в случае неправильного ответа. Видать боты просто научились парсить ответ и подставлять его в форму коммента. Подумал что неплохо бы подправить код чтобы ответ не выдавался, а просто выдавалось сообщение что ответ неверный. Идею воплотил в жизнь. В файле spam-stopper/spam-stopper.php ищем строчку 138 где написано:

alert("<?php _e('Incorrect anti-spam answer. Please re-answer the question! The correct answer is ',"spamstopper"); echo '"'.$aspama.'"'; ?>");

И меняем ее на:

alert("<?php _e('Incorrect anti-spam answer.'); ?>");

Вот и все! У меня спам пропал, чего и вам желаю!
Enjoy!

postfixadmin — ошибка «Cannot redeclare hex2bin()»

После обновления портов на сервере с FreeBSD 8.2 появилась ошибка в postfixadmin:

PHP Fatal error:  Cannot redeclare hex2bin() in /htdocs/www/pa.somedomain.com.ua/public_html/functions.inc.php on line 1338

Оказывается для решения достаточно переименовать функцию hex2bin в convertHex2bin в файле /htdocs/www/pa.encmail.com.ua/public_html/functions.inc.php строчка 1338

#function hex2bin ($str)
function convertHex2bin ($str)

Баг известный, обещали починить еще за Царя Гороха, но чтото видать не сложилось 🙂

Знакомимся с новым форматом графических файлов — Webp

Давно встречал статью о том что google якобы давно уже придумал для себя новый формат хранения собранных ботами гугла по инету графических файлов. Мол jpg сильно устарел и вообще алгоритм сжатия очень не эффективный и тд и тп. Но потом об этом както забылось, так как большого количества информации о новинке найти не удалось.
А сейчас вот случайно наткнулся опять на статью об этом формате не хабре, захотелось попробовать. Интерес подогрело наличие пакета с конверторами в официальных репозиториях Debian. Осталось дело за малым — поставить и проверить!
Устанавливается одним кликом мышки 🙂 Тьфу! Одним пинком клавы в рутовой консоли 🙂

root@deb:~# apt-get install webp

Читать полностью

Установка и настройка Apache + MySQL + PHP во FreeBSD 8.2

Установка apache2 из пакетов:

[root@gw ~]# pkg_add -r apache22

Для автозапуска добавим опцию в rc.conf

[root@gw ~]# echo 'apache22_enable="YES"' >> /etc/rc.conf

Установка MySQL 5.1 из портов Читать полностью