Apache 위치 인증을 통해 무단 액세스 허용

Apache 위치 인증을 통해 무단 액세스 허용

저는 Apache/2.2.22를 실행하고 있습니다.

Apache 인증 요구 사항을 올바르게 구현하는 방법을 모르겠습니다.

내 웹사이트에는 두 가지 영역이 있습니다.

  1. 액세스에는 항상 비밀번호 인증이 필요합니다(/restricted 및 /cgi-bin/restricted).
  2. 로컬 IP 주소(/local 및 /cgi-bin/local)를 기반으로 접근을 허용할 수 있습니다.

그러나 나는 다음과 같은 행동을 취합니다.

  • /restricted/index.html에 대한 올바른 액세스에는 인증이 필요합니다.
  • /cgi-bin/restrict/에 대한 올바른 액세스에는 인증이 필요합니다.
  • /cgi-bin/restricted/target.cgi 액세스에는 인증이 필요하지 않습니다.

이러한 모든 테스트는 실제로 /local 및 /cgi-bin/local에 대한 액세스가 허용된 IP 주소에서 수행되었으므로 어떤 방식으로든 제한을 초과할 수 있지만 절대 그렇게 되어서는 안 됩니다.

내 VirtualHost 구성의 관련 부분은 다음과 같습니다. (현재 <Location />cgi-bin 섹션에서 s를 사용하고 있으며 이전에 관련 s에 대한 모든 요구 사항이 있었지만 <Directory />내가 찾은 다른 제안을 기반으로 이를 제거했습니다. 아무런 효과가 없습니다.)

DocumentRoot /var/www

    # HTML section
    <Directory /var/www/restricted>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride All
            AuthType Basic
            AuthName "Restricted"
            AuthBasicProvider file
            AuthUserFile /etc/apache2/passwords
            Require user username
    </Directory>

    <Directory "/var/www/local/">
            Options Indexes FollowSymLinks
            Order allow,deny
            Allow from 192.168.1.0/24
            Allow from 192.168.0.0/24
    </Directory>

    # CGI section
    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/

    <Directory "/usr/lib/cgi-bin/resricted">
            AllowOverride None
            Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
    </Directory>

    <Location "/usr/lib/cgi-bin/restricted">
            AuthType Basic
            AuthName "Restricted"
            AuthBasicProvider file
            AuthUserFile /etc/apache2/passwords
            Order allow,deny
            Require user username
    </Location>

    <Directory "/usr/lib/cgi-bin/local">
            AllowOverride None
            Options +ExecCGI +SymLinksIfOwnerMatch -MultiViews
    </Directory>

    <Location "/usr/lib/cgi-bin/local">
            Order allow,deny
            Allow from 192.168.1.0/24
            Allow from 192.168.0.0/24
    </Location>

답변1

#<Location "/usr/lib/cgi-bin/restricted">
<Location "/cgi-bin/restricted">
#<Location "/usr/lib/cgi-bin/local">
<Location "/cgi-bin/local">

'위치'는 URL에 포함된 경로, 즉 fs 디렉터리가 아닌 호스트 이름 뒤에 /로 시작하는 부분을 의미합니다.

관련 정보