Я хочу использовать «Ограничение», чтобы разрешить GET и POST на страницу, требующую аутентификации, только с определенных сайтов. Мне нужна аутентификация для GET и POST с определенного IP-адреса, который должен иметь доступ без аутентификации.
<Limit GET POST>
allow from allowableSite.com
</Limit>
Это не работает. Все неавторизовано
<Limit GET POST>
allow from all
</Limit>
Это тоже не работает. Все еще не авторизовано (401)
Единственное, что проходит аутентификацию, - это
<Limit GET POST>
satisfy any
</Limit>
Тогда любой GET или POST будет успешным ... Но это не то, что я хочу, поскольку я хочу, чтобы доступ был доступен только с определенного сайта. И «разрешить» не работает должным образом. Могло ли что-то быть настроено где-то еще, что вызывает такое поведение? Любая помощь очень ценится.
Это немного сложно, не видя больше вашей конфигурации .. Поскольку Satisfy
исправил, я предполагаю, что есть Require
применяется к этому месту. В Satisfy any
директива делает так, что соответствие либо Allow
(с вашим исходным хостом) или Require
(с вашим пользователем) разрешит доступ.
Использование имени хоста с Allow
является первоначальным подозреваемым; это зависит от безупречности прямого и обратного DNS для клиента. Мне не совсем понятно, что вы подразумеваете под «только с определенных сайтов»; вам нужно для Allow
Директива должна включать все разрешенные клиентские системы. Если все их прямые и обратные DNS не совпадают в точности с тем, что вы указали, то это сломает их.
Кроме того, ваше использование <Limit>
зависит от наличия Deny from all
вне блока, чтобы ограничить другие методы .. так что если Order
установлен на Allow,Deny
, это сломает его. <LimitExcept>
лучше, когда это возможно, поскольку вы можете более четко указать блокировку нежелательных методов; <Limit>
рискует непреднамеренным доступом сверху.
Я собираюсь явно определить вещи, которые у вас, вероятно, есть где-то еще, но я хочу убедиться, что что-то из другого места не может их сломать (кроме Deny
; убедитесь, что наверху нет лишних ..):
Order Allow,Deny
# allowed subnet
Allow from 10.5.1.0/24
# allowed host
Allow from 86.12.76.12
AuthType Basic
AuthName "blah"
AuthUserFile /path/to/htpasswd
Require valid-user
Satisfy all
<LimitExcept GET POST>
Deny from all
</LimitExcept>