Я пытаюсь найти лучший способ настроить промежуточную среду с некоторыми ограничениями доступа.
Простым решением было бы отключить обычную аутентификацию, но тогда я не смогу указать на Google Page Speed Insights при тестировании оптимизации производительности, а также на другие подобные внешние службы, к которым я хочу получить доступ.
Может сделать его полностью открытым с robots.txt, чтобы он не появлялся в поисковых системах. Но меня беспокоит то, что риск любой ошибки в файле robots.txt достаточно высок, и мне не стоит об этом беспокоиться.
Если вы не заблокируете поисковые системы (или если некоторые игнорируют это), вы будете получать живых клиентов, размещающих заказы на вашем промежуточном сайте, что не сделает их счастливыми.
Или, что еще хуже, если вы случайно развернете robots.txt в рабочей среде, вы потеряете весь свой сок Google и большую часть продаж.
Так что вариант, который мне нравится, это простое ограничение IP-адреса. Но я бы хотел иметь возможность добавлять / снимать ограничения без перезапуска Nginx, просто чтобы снова минимизировать риск при внесении изменений.
Поэтому я начинаю склоняться к быстрому модулю, который при включении будет смотреть на IP-адреса разработчика и разрешать доступ к сайту (передний и внутренний), только если IP-адрес пользователя (или X_FORWARDED_FOR) совпадает с ним.
Интересно, звучит ли это как разумное решение или есть что-то более простое, что я пропускаю.
ОБНОВЛЕНИЕ: Учитывая, что robots.txt можно контролировать с помощью встроенного переключателя бэкэнда, и уведомление о демонстрационном магазине предотвратит любые законные заказы клиентов, и, поскольку я действительно не обеспокоен публичным доступом к промежуточному сайту, мне нравится решение Фила.
Но для любого, кто хочет ограничить доступ к своему промежуточному сайту, я думаю, что решение Криса - путь.
ОБНОВЛЕНИЕ 2: Не уверен на 100%, что опции robots.txt должны делать в System Config> Design> HTML Head, но в моем случае - и из краткого поиска это кажется распространенным - у меня просто плоский robots.txt текстовый файл, который используется, поэтому параметр конфигурации не учитывается.
Итак, сейчас я собираюсь использовать модуль обслуживания: https://github.com/aleron75/Webgriffe_Maintenance
Нашим основным средством блокировки (большинства) промежуточных сред является BASIC-аутентификация. Но у нас также есть превентивные меры, чтобы предотвратить их обнаружение движками, запретить показ ссылки на общедоступном веб-сайте (этого никогда не происходит), а также предотвратить их индексацию Google.
Я настроил правило
/etc/httpd/conf.d/robots.conf
со следующим псевдонимом:Псевдоним направляет все запросы в расположение файла robots.txt в заблокированный файл. Это означает, что не имеет значения, что находится в файле robots.txt в промежуточном корне Magento, сервер всегда будет выполнять следующие правила:
Расположение и соответствие любому разрешает доступ к файлу robots.txt кому угодно, независимо от аутентификации, поскольку у нас нет глобальных
disallow from any
правил.Для аутентификации по паролю у меня есть настроенные правила, чтобы я мог временно открыть аутентификацию на одном сайте, добавив
Satisfy any
в.htaccess
файл. Это потому, что мы запускаем многоэтапные сайты на одном выделенном внутреннем промежуточном сервере. Это также позволит устанавливатьallow from
правила наряду сSatisfy any
удалением аутентификации по паролю для определенных IP-адресов, сохраняя ее для всех остальных (если мне действительно нужно).Причина, по которой мне не нравится белый список на основе IP (то есть без аутентификации на основе пароля), заключается в том, что IP-адреса клиента не всегда являются статическими. Это означает, что тогда мы должны будем обновить их IP-адреса, чтобы получить доступ к ним (потенциально) ежедневно или еженедельно в зависимости от того, как долго их провайдеры DHCP удерживают аренду.
Для DNS мы используем подстановочный DNS, так что сканеры DNS не будут получать все имена хостов сайта этапа, которые должны иметь общедоступный DNS. Google фактически подберет сайт из DNS-записей. Это предотвращает это, означая, что единственный способ для них найти это, если кто-то оставляет ссылку, лежащую где-то. Но если заставить файл роботов обслуживать правило запрета, они не будут индексировать его, если найдут ссылку.
Если бы я был на месте продавца, управляющего сценическим сайтом для веб-сайта компании, я бы поступил немного иначе и просто заблокировал бы весь трафик, поступающий на сценический бокс, если бы не приходили известные IP-адреса. Любой, кто работает на сайте удаленно (внутри компании), должен был бы подключиться к корпоративной сети VPN для доступа, если у них нет статического IP-адреса, который я мог бы внести в белый список.
Наличие общедоступного DNS является обязательным, если вам необходимо протестировать такие вещи, как интеграция с платежным процессором, который, в отличие от большинства шлюзов, должен выполнять обратные вызовы на сервер для прохождения процесса оплаты.
источник
Я разработал модуль для включения режима обслуживания, который можно использовать с тем же эффектом, что и блокирование доступа пользователей к фронту (не администратора, который может быть ограничен с помощью функции блокировки IP-адресов Magento).
Вы можете разрешить доступ к веб-интерфейсу некоторым IP-адресам даже при включенном режиме обслуживания.
Может быть, вы можете попробовать, надеясь, что это поможет. Это бесплатно и с открытым исходным кодом: https://github.com/aleron75/Webgriffe_Maintenance
источник
REMOTE_ADDR
, потому что я видел доступный, но не правильный адрес, поэтому я думаю, что было бы лучше сравнить с любымREMOTE_ADDR
илиX_FORWARDED_FOR
. Работая хорошо в постановке, хотя, так что я не слишком беспокоюсь о том, чтобы копаться в этом лично лично пока.Есть несколько разных способов сделать это.
Один из способов - заставить ваших разработчиков редактировать свой файл / hosts с правильным IP-адресом.
Существует расширение, которое утверждает, что делает это более элегантным способом: http://www.magentocommerce.com/magento-connect/et-ip-security.html
источник
Поскольку вы спрашивали о Varnish в комментариях, я собираюсь поделиться своей конфигурацией с базовой аутентификацией HTTP с использованием Varnish, включая исключения. Вы должны настроить его в VCL, иначе кэшированные страницы будут всегда доступны.
Конфигурация лака VCL
Я хочу разрешить определенные IP-адреса и диапазоны для обратных вызовов поставщиков платежей и тому подобное, которые я определяю как ACL в верхней части файла VCL:
Затем добавьте следующее в конце
vcl_recv
, непосредственно передreturn (lookup)
:payment
это ACL, определенный выше. Я также разрешаю доступ к маршруту загрузки, потому что загрузчик Flash не отправляет заголовки аутентификации и, следовательно, не выполняет HTTP Basic Auth. Замените ADMIN фактическим URL администратора. Таким способом вы можете добавить любые другие исключения.XXXXXXXXX - это имя пользователя и пароль в кодировке base64. Запустите следующее в оболочке, чтобы сгенерировать эту строку:
Затем добавьте это в конце VCL, чтобы определить реакцию на ошибку 401:
источник