我想使用“限制”来允许GET和POST,只有特定的站点才能访问需要authentication的页面。 我想要从某个IP的GET和POST的身份validation,谁应该能够访问而无需身份validation。
<Limit GET POST> allow from allowableSite.com </Limit>
这不起作用。 一切都是非法的
<Limit GET POST> allow from all </Limit>
这也不pipe用。 一切仍然是未经授权的(401)
唯一通过authentication的是这个
<Limit GET POST> satisfy any </Limit>
然后,任何GET或POST将成功…但这不是我想要的,因为我只想访问从某个站点可用。 而“允许”没有按预期工作。 有什么东西可以configuration在其他地方造成这种行为? 任何帮助深表感谢。
没有看到更多的configuration,这是一个有点困难。因为Satisfy修复它,我猜是有一个Require适用于这个位置。 Satisfy any指令使得匹配Allow (与你的源主机)或Require (与你的用户)将允许访问。
在Allow使用主机名是一个初始的嫌疑犯; 这取决于客户端的正向和反向DNS是完美的。 我对“仅来自某些网站”的含义有点不清楚; 您需要Allow指令包含所有允许的客户端系统。 如果所有的正向和反向DNS不完全匹配你指定的内容,那么就会破坏它。
另外,你使用<Limit>取决于Deny from all块外面有一个Deny from all来限制其他的方法。所以如果Order被设置为Allow,Deny ,那就会破坏它。 如果可能的话, <LimitExcept>会更好,因为您可以更加明确地阻止不需要的方法。 可能会导致意外访问的风险上升。
我要明确地定义你可能在其他地方有的东西,但是我想确保别的东西不能破坏它(除了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>