Недавно я заметил, что в файле 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
Итак, ваш анализ заставляет меня думать, что защита сертификата и, возможно, каталога - это то, что делает эта строка, блокируя или перенаправляя такие запросы, поправьте меня, если я ошибаюсь.
Мне снова стало любопытно, и я начал скачивать журналы доступа и искать в них «хорошо известные» записи, честно говоря, я не знал, были ли они обычными (как всегда, но я никогда не обращал на них внимания) или нет. , и вот что я нашел.
"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.
Мистер Уайт, как всегда, большое спасибо за понимание, если я найду дополнительную информацию, я опубликую ее здесь.