Назад | Перейти на главную страницу

Пояснение к новой строке в файле htaccess: RewriteCond% {REQUEST_URI}! ^ / \. Well-known / pki-validation / (?: \ Ballot169)?

Недавно я заметил, что в файле htaccess в нескольких местах по всему файлу была добавлена ​​новая строка.

RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/(?:\ Ballot169)?

Я не понимаю, что он делает, и хотел бы, если возможно, пояснить его цель.

Пример того, как это выглядит, показан в этом примере ниже.

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/[0-9a-zA-Z_-]+$
RewriteCond %{REQUEST_URI} !^/\.well-known/cpanel-dcv/[0-9a-zA-Z_-]+$
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/(?:\ Ballot169)?
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/[0-9a-zA-Z_-]+$
RewriteCond %{REQUEST_URI} !^/\.well-known/cpanel-dcv/[0-9a-zA-Z_-]+$
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/(?:\ Ballot169)?
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

Заранее спасибо.

Это не совсем полный ответ, поскольку я не могу конкретно комментировать, как / где Ballot169 вписывается в более широкую схему вещей. Однако я могу прокомментировать, «что он делает». Хотя это кажется немного странным ...

В общем, эти RewriteCond директивы используются для создания исключения чтобы при автоматическом обновлении сертификатов SSL доступ к необходимому файлу проверки мог быть свободным. Видеть мой ответ на следующий вопрос ServerFault для получения дополнительной информации:

RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/(?:\ Ballot169)?

Поскольку последняя часть регулярного выражения (?:\ Ballot169)? является полностью необязательным, и в нем нет конечной привязки к концу строки (т. е. $) затем последняя часть, которая проверяет Ballot169 совершенно лишнее и его можно удалить! (Это «похоже» на ошибку с регулярным выражением, если только это не попытка ввести в код комментарий / отслеживаемый токен?) Итак, это то же самое, что просто:

RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/

Другими словами, он проверяет, что URL-путь не начинается с /.well-known/pki-validation/.

Следовательно, это делает предыдущее условие, которое проверяет против "Comodo" по тому же URL-пути, избыточным.

В Google эта конкретная директива появляется, как написано в других местах, например этот вопрос StackOverflow с января 2019 года.

"Бюллетень 169", по-видимому, относится к этому:

@MrWhite Я ценю ваше руководство о том, как ответить, добавить больше контекста и т. Д., И по вашему предложению я отвечаю на свой вопрос, поэтому вы можете добавить к нему свои комментарии, спасибо.

<:>: <:>: <:>: <:>: <:>: <:>: <:>: <:>: <:>: <:>: <:>: <:>

После вашего ответа я связался с хостинговой компанией, представитель сначала сказал только, что это часть SSL-сертификата, я все время спрашивал его, какова цель и его функция, единственное, что он сказал, это «все это связано с тем, как сертификат был установлен », когда я продолжал нажимать, он отказался от этого комментария, сказав, что это не важно.

То, как вы разбили директиву и как она работает для меня, и другой ответ, который вы связали, в котором говорится, что «другие люди назвали этот конкретный набор правил своего рода защитой от DDOS», заставили меня задуматься, поэтому я сделал выполните поиск по "хорошо известному хаку", в результате которого получилось следующее:

https://www.zscaler.com/blogs/research/abuse-hidden-well-known-directory-https-sites

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

Мне снова стало любопытно, и я начал скачивать журналы доступа и искать в них «хорошо известные» записи, честно говоря, я не знал, были ли они обычными (как всегда, но я никогда не обращал на них внимания) или нет. , и вот что я нашел.

  • В феврале в журналах доступа было всего 280 записей, которые выглядели так же, как эта строка ниже, строка чисел после / acme-challenge / для всех разная, и большинство указывает на IP-адреса Cloudflare (веб-сайт использует Cloudflare, поэтому я не уверен, важно ли это упоминать или нет).

"GET /.well-known/acme-challenge/Z152-H592V1UDY0PWBCKU3GEO5L6-3DQ HTTP / 1.1" 200 64 "-" "Cpanel-HTTP-Client / 1.0"

  • В марте записей вообще не было, но они снова начали показываться в апреле, который также совпадает с добавлением новой строки, и на данный момент есть около 145 записей для «хорошо известных».

  • Стоит отметить, что этот конкретный веб-сайт использует бесплатный ssl от Cloudflare, а не от Let's Encrypt.

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

Мистер Уайт, как всегда, большое спасибо за понимание, если я найду дополнительную информацию, я опубликую ее здесь.