Источник: https://n0where.net/common-htaccess-snippets/

Файл .htaccess (hypertext access) это конфигурационный файл на уровне директорий, он поддерживается несколькими веб-серверами. Благодаря ему возможно децентрализованное управление настройками веб-сервера. Эти файлы раскиданы по каталогам сервера и они способны изменять глобальные настройки сервера для конкретной директории, в которой они размещены и для поддиректорий.

Первоначальное использование .htacces отражено в его названии (гипертекстовый доступ) — контроль разрешения доступа посредством, например, требованием пароля для доступа к контенту. Тем не менее, намного чаще файлы .htaccess используются для переопределения многих других конфигурационных настроек, таких как тип контента, кодировка, CGI обработчики и т.д.

Программное обеспечение сервера Apache обеспечивает распределённое (т. е. на уровне директорий) конфигурирование посредством файлов Hypertext Access. Эти файлы .htaccess включают локализованную тонкую настройку универсальных директив системной конфигурации Apache, которые определены в главном конфигурационном файле Apache. Местные директивы .htaccess должны работать из файла под названием .htaccess. У пользователя должны быть надлежащие разрешения для доступа и/или редактирования файла .htaccess. Кроме того, права доступа файла .htaccess никогда не должны иметь разрешение на запись кем угодно — т. е. это настройка параметров разрешений “644”, которая позволяет всеобщий доступ для чтения, а разрешение на запись даёт только пользователю. Наконец, правила .htaccess применяются к родительской директории (в которой лежит файл) и всем поддиректориям. Т.е. чтобы применить правила настройки ко всему веб-сайту, разместите файл .htaccess в корневой директории сайта.

Обычное использование .htaccess

  • Авторизация, аутентификация — Файл .htaccess часто используется для установки ограничений безопасности для каталога, помните про “access” в имени файла? .htaccess часто сопровождается файлом .htpasswd, в котором собраны валидные имена пользователей и их пароли.
  • Переписывание URL — Серверы часто используют .htaccess для перезаписи длинных, чрезмерно сложны URL в более короткие и лёгкие для запоминания.
  • Блокировки — Используются allow/deny для блокировки IP адреса или домена. Также полезен для блокировки плохих ботов, рипперов и рефереров. Часто используется для ограничения доступа паукам поисковых машин.
  • SSI — включают инклуды на стороне сервера.
  • Листинг каталогов — Контролирует, как сервер будет реагировать, когда специфичная веб-страница (обычно это index.htm, index.html, index.php или любая другая — в зависимости от настройки) отсутствует.
  • Настройка страниц ошибок — Изменение страницы, которая показывается при возникновении ошибки на стороне сервера, например, ошибки HTTP 404 Страница не найдена или дают знать поисковым машинам, что страница была перемещена — HTTP 301 Moved Permanently.
  • MIME types (типы) — Инструктирует сервер, как работать с различными типами файлов.
  • Cache Control (контроль кэша) — .htaccess файлы позволяют серверу контролировать кэширование веб-браузерами и проксями для уменьшения нагрузки на сеть, на сервер и предотвращения проявления лагов.

Комментирование кода в .htaccess

Комментирование — это основа для поддержания контроля за определённым участком кода. Комментарии в коде файла .htaccess ставятся построчно, каждая строка комментариев начинается со знака решётки #. Таким образом, если нам нужно закомментировать несколько строк файла .htaccess, то нам нужно поставить несколько решёток в начале каждого файла. Кроме того, из-за не всегда предсказуемого поведения файла htaccess, разумно включать только алфавитные символы (и, возможно, несколько тире и подчёркиваний) в комментарии файла .htaccess.

Преимущества .htaccess

  • Немедленные изменения — Поскольку файлы .htaccess читаются при каждом запросе, изменения, сделанные в этих файлах, имеют немедленный эффект — в отличие от главного конфигурационного файла, для которого требуется перезапуск сервера, чтобы новые строки возымели эффект.
  • Непривилегированные пользователи — Для серверов с множеством пользователей, часто желательно позволять индивидуальным пользователям использовать их собственную конфигурацию сайта. Использование файлов .htaccess позволяет такую индивидуализацию и для непривилегированных пользователей — поскольку не нужно изменять главные конфигурационные файлы сервера.

Недостатки .htaccess

Контролировать Apache только главными файлами конфигурации сервера часто предпочтительно по причинам безопасности и производительности:

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

Важная информация для нубов в .htaccess

Поскольку конфигурационынй файл .htaccess очень мощный, даже незначительная ошибка в синтаксисе (вроде пропущенного пробела) может привести к серьёзным неисправностям сервера. Поэтому очень важно сделать резервные копии всего, что связано с вашим сайтом (включая оригинальные файлы .htaccess) до того, как вы начнёте работать с вашим файлом (или файлами) .htaccess. Также важно проверить ваш веб-сайт на работоспособность после внесения любых изменений в ваш файл .htaccess. Если возникнут какие-либо проблемы, то сразу используйте ваши резервные копии для восстановления первоначальной функциональности.

Определения символов регулярных выражений для .htaccess

#

Решётка # инструктирует сервер игнорировать эту строку. Используется для добавления комментариев. Каждая строка комментариев требует свою собственную #. При добавлении комментариев хорошей практикой является использование только букв, номеров, тире и подчёркиваний. Подобная практика поможет ликвидировать/избежать потенциальные ошибки сервера при разборе файлов настроек.

[F]

– Запрещено: инструктирует сервер вернуть код ошибки 403 Forbidden клиенту

[L]

– Последнее правило: поручает серверу остановить перезапись после того, как эта директива будет отработана.

[N]

– Далее: поручает Apache применять правила перезаписи до тех пор, пока не будут пройдены все директивы перезаписи.

[G]

– Больше нет: инструктирует сервер для отправки сообщения статуса Gone (больше не существует).

[P]

– Прокси: инструктирует сервер обработать запрос модом mod_proxy

[C]

– Цепочка: поручает серверу связать текущее правило с предыдущим.

[R]

– Перенаправление: инструктирует Apache сделать редирект, в результате чего браузер запрашивает перезаписанный/модифицированный URL.

[NC]

– Без регистра: устанавливает любые связанные аргументы как регистронезависимые.

[PT]

– Пройти через: инструктирует mod_rewrite вернуть Апачу полученный URL для дальнейшего изменения в соответствии с заданными правилами.

[OR]

– Или: означает логическое “или”, которое связывает два выражения и если хотя бы одно из них будет истинной, то будет выполняться заданное правило.

[NE]

– Не экранировать: инструктирует сервер парсить вывод без экранирования символов.

[NS]

– Без подзапросов: инструктирует сервер пропускать директивы если они находятся внутри подзапроса.

[QSA]

– Добавить строку запроса: говорит серверу добавить строку запроса в конец выражения (URL).

[S=x]

– Пропустить: инструктирует сервер пропустить последующее “x” число правил если выявлено совпадение.

[E=variable:value]

– Переменные окружения: предписывает серверу установить значение переменной окружения “variable” на “value”.

[T=MIME-type]

– Тип Mime: объявляет тип mime целевого ресурса.

[]

– задаёт набор символов, в котором любой символ внутри квадратных скобок будет вызывать соответствие, например, [xyz] будет соответствовать x, y или z.

[]+

– набор символов, в котором любые комбинации внутри квадратных скобок будут вызывать соответствие, например, [xyz]+ будет соответствовать любому числу иксов, игреков и зедов или любым другим комбинациям этих символов.

[^]

– означает НЕ в наборе символов, например, [^xyz] будет соответствовать любому символу, кроме x, y и z.

[a-z]

– тире (-) между двумя символами в наборе символов ([]) означает диапазон символов между ними. например, [a-zA-Z] соответствует всем маленьким и большим буквам от a до z.

a{n}

– определяет точное количество n, предшествующего символа, например, x{3} соответствует ровно трём иксам.

a{n,}

– указывает на n или больше количество повторяющиеся символов. Например, x{3,} соответствует трём или более иксам.

a{n,m}

– устанавливает диапазон чисел между n и m предшествующего символа. Например, x{3,7} соответствует трём, четырём, пяти, шести или семи иксам.

()

– используется для группировки символов, в результате эти символы рассматриваются как единый блок. Например, (perishable)?press будет соответствовать press, с или без префикса perishable.

^

– означает начало тестируемой строки regex (regex = регулярное выражение), например, начало аргумента и последующие символы.

$

– означает конец тестируемой строки regex (regex = регулярное выражение), например, конечный символ и предшествующие ему символы.

?

– указывает на опциональность предшествующего символа. Например, monzas? Будет соответствовать monza или monzas, в то время как mon(za)? Будет соответствовать mon или monza. Например, x? соответствует нулю или одному x.

!

– объявляет отрицание. Например, “!string” соответствует чему угодно кроме “string”.

.

– точка служит указателем на один любой произвольный символ.


– говорит не перезаписывай URL, используется примерно так: “…domain.com.* – [F]”. Реальный пример RewriteRule «.exe» «-» [F] запрещать загрузку файлов с расширением exe. Ведь зачем нам проводить какие-то манипуляции с адресом, если запрос всё равно будет отклонён?

+

– соответствует одному или более предшествующему символу. Например, G+ соответствует одной или более G, в то время “+” будет соответствовать одному или более символу любого рода.

*

– говорит о том, что предшествующий символ повторяется ноль или более раз. Например используйте “.*” как wildcard.

|

– задаёт оператор логическое “или”. Например, (x|y) соответствует x или y.

– экранирует специальные символы ( ^ $ ! . * | ). Например, используйте “.” для индикации/экранирования буквальной точки — т. е. нам нужна именно точка.

.

– означает буквальную точку (экранированную).

/*

– ноль или более слешей.

.*

– ноль или более случайных чисел.

^$

– означает пустую строку.

^.*$

– стандартный паттерн, означающий «что угодно».

[^/.]

– означает один символ, который не слеш и не точка.

[^/.]+

– означает любое количество символов, которые не содержат слешей и точек.

http://

– это буквальное выражение — в этом случае буквальное означение строки — “http://”.

^domain.*

– означает строку, которая начинается на “domain”, после которого могут следовать любые символы.

^domain.com$

– определяет точную строку “domain.com”.

-d

– тестирует, является ли строка существующей директорией

-f

– тестирует, является ли строка существующим файлом

-s

– тестирует, не нулевого ли размера файл в тестовой строке

Коды заголовков перенаправления

301 – Перемещён навсегда

302 – Перемещён временно

403 – Запрещён

404 – Не найден

410 – Больше нет

Распространённые сниппеты .htaccess

Переписывание и Перенаправление

Обратите внимание: Подразумевается, что у вас установлен и включен mod_rewrite.

Включения базового переписывания

Адрес принудительно будет иметь www

Адрес принудительно будет иметь www в общем виде

Адрес принудительно НЕ будет иметь www

Адрес принудительно НЕ будет иметь www в общем виде

Принудительное использование протокола HTTPS

Принудительное использование протокола HTTPS за прокси

Полезно если вы имеете прокси перед вашим сервером для TLS.

Принудительное добавление слешей на конце адреса

Удаление слешей на конце адреса

Удаление слешей на конце адреса в произвольных адресах

Этот сниппет будет перенаправлять пути, заканчивающиеся на слэши, на аналогичные без концевых слешей (кроме реальных директорий), например http://www.example.com/blog/ на http://www.example.com/blog. Это важно для SEO, поскльку рекомендуется иметь канонические URL для каждой страницы.

Перенаправить на единичную страницу

Псевдоним (алиас) для единичной директории

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

В этом примере приведён файл index.fcgi, который лежит в каталоге и все запросы к этому каталогу, которые потерпели неудачу из-за отсутствия файла/директории будут перенаправлены на скрипт index.fcgi. Это хорошо, если вы хотите, чтобы baz.foo/some/cool/path обрабатывался скриптом baz.foo/index.fcgi (который также поддерживает запросы на baz.foo) в тоже время поддерживается baz.foo/css/style.css и другое подобное. Узнать истинный путь можно из переменной окружения PATH_INFO, которая доступна в скриптах.

Это менее эффективная версия директивы FallbackResource (поскольку использование mod_rewrite сложнее, чем просто обработка директивой FallbackResource), но также и более гибкое.

Перенаправление всего сайта

Этот способ не ломает ссылки. Это означает, что запрос www.oldsite.com/some/crazy/link.html превратится в www.newsite.com/some/crazy/link.html. Это крайне полезно, когда вы просто переносите сайт на новый домен.

Псевданимы (алиасы) чистых URL

Этот сниппет позволяет вам использовать «чистые» URL — вроде тех, что без PHP расширения, например, example.com/users вместо example.com/users.php.

Развертывание пользовательских страниц ошибок

# использование пользовательских страниц ошибок

Обеспечиваем Универсальный Документ Ошибки (Universal Error Document)

Перенаправлять посетителей на временный сайт во время разработки сайта

# перенаправляем всех посетителей на альтернативный сайт, но сохраняем полный доступ для вас

Безопасность

Запретить доступ для всех

Запретить доступ для всех, кроме вас

xxx.xxx.xxx.xxx это ваш IP. Если вы замените последние три цифры, например, на 0/12, этим вы определите диапазон IP внутри этой сети, это оградит вас от проблемы перечислять по отдельности все разрешённые IP.

Разрешить доступ для всех кроме спамеров

Запретить доступ к скрытым файлам и директориям

Скрытые файлы и директории (те, чьи имена начинаются с точки .) должны в большинстве, если не все, быть недоступны для других. Например к этим файлам относятся .htaccess, .htpasswd, .git, .hg…

Как вариант, вы можете выдавать ошибку Not Found (не найдено), чтобы не давать атакующему подсказку:

Отклонить доступ к резервным копиям и исходным кодам

Эти файлы могут быть оставлены некоторыми редакторами text/html (вроде Vi/Vim) и представляют огромную брешь в безопасности, если станут общедоступными.

Отключение показа содержимого директорий

Отключение показа ваших изображений (хотлинкинг) на других сайтах

Отключение вставки ваших изображений на чужие сайты (хотлинкинг) для конкретных доменов

Иногда вы хотите отключить хотлинкинг только для некоторых плохих парней.

Защита директории пароолем

Для начала вам нужно где-нибудь создать файл .htpasswd:

Затем вы можете использовать этот файл для аутентификации:

Защита паролем файла или нескольких файлов

Блокировать посетителей по Referrer (откуда пришли)

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

Предотвращение вставки сайта во фреймы

Это не даёт веб-сайту быть вставленным во фреймы (например, быть размещённым в теге iframe), хотя ещё разрешён фрейминг для особых URI.

Предотвращаем доступ к .htaccess

Добавьте следующий блок кода в ваш файл htaccess для добавления дополнительного слоя безопасности. Любые попытки получить доступ к файлу будут приводить к сообщению об ошибке 403. Конечно, ваш первый уровень защиты файлов htaccess заключается в настройке параметров разрешения на файлы через CHMOD на 644.

Предотвращаем доступ к определённым файлам

Для ограничения доступа к определённым файлам, добавьте следующий блок кода и отредактируйте имя файла “file.txt”, заменив его на имя файла, который вы хотите защитить.

Предотвращаем доступ к ряду типу файлов

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

Предотвращаем неавторизованный просмотр директорий

Закройте неавторизованный просмотр директории, указав серверу отвечать ошибкой “xxx Forbidden – Authorization Required” для любой запрос просмотра директории.

Наоборот, для включения просмотра директорий, используйте следующую директиву:

Точно также это правило будет препятствовать просмотру содержимого папок на сервере:

Директива IndexIgnore может использоваться для предотвращения отображения выбранных типов файлов:

Меняем дефолтную (по умолчанию) индексную страницу

Это правило говорит серверу найти и выдать “business.html” в качестве дефолтного индекса директории. Это правило должно быть в файле htaccess корневой директории для который вы хотите заменить индексный файл по умолчанию.

Это правило схожее, только в этом случае сервер будет сканировать корневую директорию на список файлов и выдаст первый из списка, который существует на сервере. Список читается слева направо:

Маскируем расширение скрипта

Для увеличения безопасности, маскируйте скриптовый язык, заменив действительное расширение скрипта на фальшивое по вашему выбору

Ограничение доступа к локальной сети

Безопасность директорий по IP адресами и/или доменам

Все IP адреса разрешены, кроме 1.1.1.1 и codeby.net

Все IP адреса отклоняются кроме 1.1.1.1 и codeby.net:

Блокировка посетителей основываясь на ссылающемся домене

Запрещаем или разрешаем доступ к домену для определённого диапазона IP адресов

CIDR — Бесклассовая адресация

Подобным образом разрешаем диапазон IP по номеру CIDR:

Блокируем IP диапазон сокращённой записью адресов

Разрешаем IP диапазон сокращённой записью адресов:

Блокируем или пропускаем множество IP адресов на одной строке

Сохраним немного места блокировкой множества IP адресов или диапазонов на одной строке

Пропускаем много IP адресов или диапазонов на одной строке:

Останавливаем хотлинкинг, выдавая вместо изображений другой контент

Для отображения стандартных (или пользовательских, если настроены) страниц ошибок вместо отвратительного изображения, заменить строку, содержащую RewriteRule в вышеприведённой директиве htaccess на следующую:

Чтобы предоставить разрешения на вставку изображений с вашего сайта на определённые сайты, вставьте этот кусок кода после строки содержащей адрес домена (в нашем примере это “codeby.net”). Не забудьте заменить “goodsite.com” на настоящее доменное имя сайта:

Блокируем плохих роботов, риперов сайтов и оффлайн браузеры

Или, вместо отправки дружелюбного сообщения об ошибке, отправляйте этих плохих парней на веб-сайт по вашему выбору, просто заменив RewriteRule в последней строке на один из следующих примеров:

Или отправляем их в виртуальную чёрную дыру фальшивых email адресов:

Вы также можете включить заданных рефереров для вашего чёрного списка с использованием HTTP_REFERER. Здесь мы используем “bad-domain.ru” в качестве нашего заблокированного примера, и мы используем “yourdomain” в качестве вашего домена (домена, для которого вы блокируете переходы с iaea.org):

Защищаем паролем файлы, каталоги

Требуем SSL (Secure Sockets Layer — уровень защищённых сокетов)

Автоматически CHMOD различные типы файлов

Маскировка расширения файла

Этот метод будет маскировать все типы файлов (т. е. расширения файлов) и представлять их как .php файлы (или с любым другими расширением по вашему выбору):

Защищаем от атаки-в-обслуживании (DOS) ограничением размера выгружаемого файла

Защищаем каталоги отключением исполнения скриптов

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

Запрашиваем у пользователей пароль на время разработки сайта

Закрываем доступ к каталогу в заданные периоды времени

Производительность

Сжатие текстовых файлов

Задать время истечения заголовков

Время истечения заголовков скажут браузеру, нужно ли данный файл запросить от сервера или просто вытащить его из кэша. Рекомендуется для статичного контента установить время истечения заголовков на что-нибудь далёкое в будущем. Если вы не контролируете изменение версий с помощью перебора основанного на файлах, подумайте о том, чтобы уменьшить время кэша для ресурсов вроде CSS и JS до чего-нибудь вроде одной недели.

Отключение eTags

Удалив заголовок ETag, вы отключаете кэши и браузеры от возможности валидировать файлы, следовательно они будут вынуждены полагаться на ваши заголовки Cache-Control и Expires.

Множественное использование правил из httpd.conf

Сберегите своё время и силы по созданию дублирующих правил для множества виртуальных хостов. Пропешите их только один раз в вашем файле httpd.conf. Затем просто укажите целевому файлу (файлам) htaccess наследовать правила из httpd.conf, это делается следующей директивой:

Улучшите производительность через AllowOverride

Повышение производительности через указание кодировки

Предотвратим определённую ошибку 500, указав кодировку по умолчанию. Примечание: замените “utf-8” на желаемую юкодировку.

Повышение производительности за счет сохранения полосы пропускания

Для повышения производительности на серверах с включённым PHP добавьте следующую директиву.

Отключаем подпись (сигнатуру) сервера

Здесь мы отключаем цифровую сигнатуру, которая в противном случае может служить для идентификации сервера.

Улучшаем скорость сайта включением кеширования файлов

* Конвертирование распространённых интервалов в секунды:

  • 300 = 5 минут
  • 2700 = 45 минут
  • 3600 = 1 час
  • 54000 = 15 часов
  • 86400 = 1 день
  • 518400 = 6 дней
  • 604800 = 1 неделя
  • 1814400 = 3 недели
  • 2419200 = 1 месяц
  • 26611200 = 11 месяцев
  • 29030400 = 1 year = никогда не истечёт

Разное

Установка переменных PHP

Установка временной зоны сервера (timezone)

Указываем серверу жить по часам определённой временной зоны

Установка адреса электронный почты администратора сервера

Задаём email по умолчанию для администратора сервера

Устанавливаем язык по умолчанию

Это простой способ настроить язык по умолчанию для страниц, обслуживаемых вашим сервером (отредактируйте язык, в соответствии с вашими требованиями)

Объявляем особые/дополнительные типы MIME

Разрешаем только запросы GET и PUT

Выдаём разные файлы в зависимости от метода запроса

Устанавливаем настройку кодировки и других заголовков без мета тегов

Выполнение различных скриптов через скрипт cgi

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

Включение символьных ссылок

Включите символьные ссылки (symlinks) добавлением следующей директивы к файлу htaccess целевой директории. Примечание: для работы директивы FollowSymLinks должна быть включена опция AllowOverride в конфигурационном файле сервера.

Включение AllowOverride

Для улучшения производительности рекомендуется включать AllowOverride только в отдельной директории или директориях для которых это нужно. В следующем отрезке кода мы включаем привилегии AllowOverride только в заданной директории.

Комментируем файл htaccess

Переименование файла htaccess

Эта директива должна быть размещена в конфигурационном файле сервера, иначе она не будет работать

Пользовательские страницы ошибок

Принудительная загрузка

Иногда вы хотите, чтобы браузер загружал некий контент вместо отображения его.

Предотвращение загрузки

Иногда вы хотите принудить браузер отображать контент вместо его загрузки.

Разрешить междоменные шрифты

CDN-served webfonts не работают в Firefox или IE из-за CORS. Этот сниппет решает эту проблему.

Автоматическая кодировка UTF-8

Ваш текстовый контент должен всегда быть закодирован в UTF-8, так?

Переключение на другую версию PHP

Если у вас общий хостинг, есть шанс, что установлена более чем одна версия PHP, а иногда вам нужна конкретная версия для вашего веб-сайта. Следующий сниппет должен переключить PHP версию для вас

Посмотрите “Хостинг с выбором версии PHP”.

Отключить Internet Explorer Compatibility View

Просмотр в режиме совместимости в IE может оказать влияние на как отображаются некоторые сайты. Следующий сниппет должен принудить IE использовать движок Edge Rendering и отключить просмотр в режиме совместимости.

Работа с изображениями WebP

Если поддерживаются WebP и изображения с расширениями .webp и теми же именами найдены в том же месте где и изображения jpg/png, которые нужно отправить, то тогда вместо них отправляются изображения WebP.

Использование базовой проверки правописания URL

Указываем браузеру загружать мультимедийные файлы, а не отображать их

Указываем серверу отображать исходный код для динамических типов файлов

Активируем SSI для файловых типов HTML/SHTML

Даём доступ CGI для конкретной директории

Отключаем magic_quotes_gpc для серверов с PHP

Включение MD5 digests

Примечание: включение этой опции может стать причиной относительного замедления производительности сервера

Похожие темы

Графический интерфейс для веб-сервера Apache — Apa... Что такое ApacheGUI? ApacheGUI, как следует из самого названия, это графическая оболочка для веб-сервера Apache. Apache GUI является кросспл...
Как отключить SSL 3 на своём сервере... Как защитить пользователям себя от уязвимости SSL 3.0 codeby.net уже писал. Вы можете проверить, подвержены ли вы этой уязвимости перейдя на эт...
Как установить ModSecurity (mod_security) на Apach... Два нуля Фоторобот со спины Идём Что земля Мне шесть футов глубины Со льдом (Секвойя & ОКовцур - "Хамелеон") ...
Почта на локальном сервере — установка почтовой за... Оказывается, на этом Хабре есть и полезные статьи. По крайней мере, я нашёл одну такую. Вот она. В ней рассказывается, как сделать почтовую загл...
Logjam атака: доказательство концепции с наглядным... Мы описали технические детали наших атак в нашей научной статье, Несовершенная секретность: Неудачи Diffie-Hellman на практике. В разделах ниже мы пре...