Pull to refresh
0
0
Мистер Кот @sherbacov

User

Send message

Определение кодировки текста в PHP — обзор существующих решений плюс еще один велосипед

Reading time7 min
Views104K
Столкнулся с задачей — автоопределение кодировки страницы/текста/чего угодно. Задача не нова, и велосипедов понапридумано уже много. В статье небольшой обзор найденного в сети — плюс предложение своего, как мне кажется, достойного решения.

1. Почему не mb_detect_encoding() ?


Если кратко — он не работает.
Подробнее - под катом
Total votes 115: ↑104 and ↓11+93
Comments82

Защита от DDOS атаки случайными аргументами при помощи Nginx

Reading time1 min
Views3.4K
Я встретился с новым типом ботнета. Если старый долбил только в главную, то новый действует иначе. Он посылает множество запросов вида
GET someurl/?t1555ss5326=5326, где someurl — найденный ботом php скрипт.
Но если атакуемый сайт поддерживает ЧПУ, то такие запросы к нему должны отсутствовать в принципе. ЧПУ сейчас является стандартом де-факто, по этому можно смело отрезать такие запросы, логируя IP ботов.
Для этого очень удобен nginx, и его переменная is_args, которая имеет значение "?", если в URI идут аргументы. Базовая конструкция выглядит так:

if ($is_args = "?") {
return 403 444;
}

Очень просто и красиво, правда?
Вот как выглядит LA после включения этой защиты:
load average: 1.50, 3.09, 6.96
Текущий ботнет из ~20000 зомби, делают 5-8k одновременных запросов.
Total votes 94: ↑79 and ↓15+64
Comments55

Потребление ресурсов дистрибутивами Linux при установке

Reading time2 min
Views14K
В ходе отладки облака собралась статистика по потреблению ресурсов инсталляторами различных версий Linux.

Все ОС ставятся полностью автоматом (preseed и kickstart), в минимальной конфигурации с незначительными коррекциями (в частности, openssh-server для дебиана и специальное Xen'овское ядро). Так как собрать статистику «только за установку» не получается, приведена статистика за операцию «установка + первая загрузка».

Установка целиком идёт с репозитория (т.е. сетевой трафик большей частью — это скачивание пакетов).

Показатели:
  • процессорное время — реальное время работы процессора. Время установки системы больше, так как во время операций ввода/вывода процессор простаивает. (фактически, это использованные такты процессора, поделенные на частоту)
  • потребление памяти — благодаря memory on demand объём выделенной памяти меняется «на лету». Для подсчёта получившегося потребления введена синтетическая величина Гб*ч (1Гб*ч = 1 Гигабайт памяти на 1 час или 512 Мб на 2 часа, или 2Гб на пол-часа)
  • Сеть и диск интутитивно понятны. Учитывается как объём, так и количество запросов.

ОС Процессорное время Потребление памяти Запись на диск (Мб, операций) Чтение с диска (Мб, операций) Передано в сеть (Мб, пакетов) Получено из сети (Мб, пакетов)
Debian Lenny i386 2 мин. 39 с 0.065 Гб*ч 1216 Мб, 60657 25 Мб, 3695 1.02 Мб, 19444 130.18 Мб, 91672
Ubuntu Lucid Lynx i386 4 мин. 19 с 0.128 Гб*ч 2324 Мб, 144350 39 Мб, 4430 3.76 Мб, 70887 213 Мб, 154146
Ubuntu Lucid Lynx amd64 3 мин. 39 с 0.563 Гб*ч 2510 Мб, 191514 45 Мб, 4749 4.41 Мб, 83386 214.28 Мб, 155494
Centos 5.4 i386 1 мин 48 с 0.127 Гб*ч 1191 Мб, 153543 137 Мб, 9348 8.65 Мб, 163729 365.39 Мб, 267416
Centos 5.4 amd64 1 мин. 46 с 0.149 Гб*ч 1408 Мб, 185964 139 Мб, 9209 9.01 Мб, 172613 416.75 Мб, 306086

Я не совсем могу объяснить эти результаты (в частности, такая большая разница по времени между ubuntu 32 и 64 бита), однако, центос сильно удивил — время установки у него ощутимо больше, чем у debian, а реальной нагрузки на процессор — меньше.
Total votes 68: ↑44 and ↓24+20
Comments62

Горячие клавиши в шелле

Reading time3 min
Views113K
Посвящается B_dot, пост которого заставил заинтересоваться возможностями консоли плотнее.
cat /dev/cheat-sheet >> /dev/head

Краткое вступление


В этом посте будет рассказано о некоторых сочетания клавиш, которые могут упросить жизнь администраторам, работающим в консоли. Все они работают в bash'e. Сочетания клавиш я дополнительно проверял на циске (Cisco IOS Software, s72033_rp Software (s72033_rp-ADVIPSERVICESK9_WAN-M), Version 12.2(33)SXH4), csh и zsh. Рассмотренное в других записях повторять особо не буду. Сочетания сгруппированы по использованной функциональной клавише.
Особенно полезен этот текст будет людям, которые любят использовать клавиши Home, End и Delete (которые в цисковой консоли «не работают»).
Читать дальше →
Total votes 150: ↑145 and ↓5+140
Comments59

7 бесплатных сервисов для проверки сайтов (о которых вы могли и не знать)

Reading time2 min
Views254K
Картинка для привлечения внимания
Мне достаточно часто приходится использовать различные онлайн-сервисы для проверки доступности сайтов и их поверхностных тестов и проверок.
Как показал краткий опрос коллег — почти у всех эти наборы сервисов отличаются. Я хочу показать вам свой, прошу в
подробности
Total votes 188: ↑181 and ↓7+174
Comments72
2

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity