HTTP 403 "금지됨": 원인, 예방 및 수정

게시 됨: 2023-09-01
목차
  • HTTP 403이란 무엇입니까?
  • 일반적인 원인
  • 진단하다
  • 예방하는 방법
  • 문제를 해결하는 방법
  • 관련 오류

HTTP 403은 "금지됨" 을 의미하며 서버가 클라이언트의 요청을 이해하지만 이를 이행하기를 거부함을 나타냅니다.

이 문서의 목적은 HTTP 403의 본질을 밝히고, 일반적인 원인을 풀고, 진단을 안내하고, 예방 및 해결 기술을 제공하는 것입니다.

또한 포괄적인 이해를 돕기 위해 관련 오류를 강조 표시합니다.

HTTP 403이란 무엇입니까?

403-금지된 오류

HTTP 403은 "금지됨"을 나타내는 상태 코드입니다. 이 오류가 발생하면 서버가 요청을 이해하지만 완료를 거부한다고 클라이언트에 알립니다.

사용자 인증 문제와 관련된 401 "권한 없음" 상태와 달리 403 오류는 인증이 성공했지만 인증된 사용자에게 요청된 리소스에 액세스하는 데 필요한 권한이 여전히 없음을 나타냅니다.

일반적인 원인

HTTP 403 오류는 다양한 상황에서 발생할 수 있습니다.

  1. 권한 부족 : 사용자에게 서버의 특정 리소스에 액세스하는 데 필요한 권한이 없을 수 있습니다.
  2. 지리적 제한 : 일부 웹 콘텐츠는 특정 지역이나 국가의 사용자에게만 제한될 수 있습니다.
  3. IP 차단 : 서버는 보안 문제나 이전의 의심스러운 활동으로 인해 특정 IP 주소를 차단할 수 있습니다.
  4. 엄격한 .htaccess 규칙 : Apache 서버의 .htaccess 파일에 잘못된 규칙이나 지나치게 제한적인 규칙이 있으면 403 오류가 발생할 수 있습니다.
  5. 서버 보안 프로토콜 : 일부 서버에는 특정 사용자 에이전트 또는 브라우저의 요청을 차단하는 보안 프로토콜이 있을 수 있습니다.

진단하다

HTTP 403 오류의 근본 원인을 확인하려면 다음 단계를 고려하십시오.

  1. URL 검토 : 올바른 URL에 접속하고 있는지, 오타가 없는지 확인하세요.
  2. 서버 로그 검사 : 서버 로그는 특정 요청이 거부된 이유에 대한 통찰력을 제공할 수 있습니다.
  3. .htaccess 파일 확인 : Apache에서 실행되는 웹사이트의 경우 .htaccess 파일을 검토하면 지나치게 제한적인 규칙을 식별할 수 있습니다.

예방하는 방법

HTTP 403 오류를 방지하려면 원활한 서버-클라이언트 상호 작용을 보장하기 위한 사전 조치가 필요합니다.

  1. 정기적으로 권한 검토 : 사용자가 필요한 리소스에 액세스할 수 있도록 권한을 정기적으로 확인하고 조정합니다.
  2. .htaccess를 주의 깊게 업데이트하십시오 . .htaccess 파일을 수정할 때 주의 깊게 수행하고 항상 백업을 보관하십시오.
  3. 서버 보안 모니터링 : 우발적인 차단을 방지하기 위해 서버 보안 프로토콜에 대한 최신 정보를 유지하세요.

문제를 해결하는 방법

403 오류 해결은 근본 원인에 따라 다릅니다.

1. 권한 조정

액세스가 필요한 사용자 또는 디렉터리에 올바른 권한이 부여되었는지 확인하세요. (더 읽어보기)

2. .htaccess 문제 수정

  1. .htaccess 파일 백업 : 변경하기 전에 항상 .htaccess 파일을 백업하십시오.
  2. 거부 지시문 확인 : .htaccess 파일에서 Deny 지시문을 찾으세요. 존재하는 경우 403 오류가 발생할 수 있습니다. 예: Order allow,deny Deny from all 이 문제를 해결하려면 지시문을 제거하거나 원하는 트래픽을 허용하도록 수정하십시오.
  3. 비밀번호 보호 : 특정 디렉토리가 AuthType , AuthName , AuthUserFileRequire 사용하여 비밀번호로 보호된 경우 해당 디렉토리에 액세스하려면 올바른 자격 증명이 있는지 확인하세요. 비밀번호 보호를 원하지 않으면 이러한 지시문을 주석 처리하거나 제거할 수 있습니다.
  4. 파일 권한 : 엄밀히 말하면 .htaccess 솔루션은 아니지만 파일과 디렉터리에 올바른 권한이 있는지 확인하세요. 많은 서버의 경우 일반적인 권한 설정은 다음과 같습니다.
    • 폴더: 755
    • 파일: 644
    특히 디렉터리에 대한 잘못된 권한은 403 오류로 이어질 수 있습니다.
  5. 디렉토리 목록 : 색인 파일(예: index.html 또는 index.php )이 없고 디렉토리 목록이 비활성화된 디렉토리에 액세스하려고 하면 403 오류가 발생할 수 있습니다. 다음 중 하나를 수행할 수 있습니다.
    • 디렉터리에 인덱스 파일을 추가합니다.
    • 다음을 사용하여 디렉터리 목록을 활성화합니다. Options +Indexes
  6. Mod_Rewrite 규칙 : mod_rewrite 규칙을 사용하는 경우 올바르게 작성되었는지 확인하세요. 잘못된 규칙으로 인해 때때로 403 오류가 발생할 수 있습니다. 특정 규칙을 주석 처리하여 원인인지 확인하세요.
  7. 파일 제한 사항 확인 : 다음과 같이 파일 이름을 기준으로 액세스를 제한하는 규칙을 찾습니다. <Files "secretfile.php"> Order allow,deny Deny from all </Files> 필요에 따라 이러한 규칙을 조정하거나 제거합니다.
  8. .htaccess 구문 확인 : 잘못 작성된 .htaccess 파일이나 잘못된 지시문이 있는 파일은 403 오류를 일으킬 수 있습니다. 모든 지시어와 구문이 올바른지 확인하세요.

.htaccess 파일을 변경한 후에는 브라우저 캐시를 지우거나 다른 브라우저를 사용하여 테스트하여 업데이트된 결과가 표시되는지 확인하세요. 위의 해결 방법으로 문제가 해결되지 않으면 403 오류가 발생하지 않았던 시점의 .htaccess 파일 백업을 복원하는 것이 좋습니다.

3. IP 주소 화이트리스트

IP 차단이 원인인 경우 해당 IP 주소를 화이트리스트에 등록하는 것을 고려해보세요.

.htaccess가 포함된 화이트리스트:

  1. 기존 IP 차단 규칙 찾기 : IP 주소를 차단할 수 있는 .htaccess 파일에서 기존 규칙을 찾습니다. Order Deny,Allow Deny from all Allow from 123.123.123.123 이 예에서는 IP 123.123.123.123 만 허용되고 다른 모든 IP는 거부됩니다.
  2. IP 주소 화이트리스트 : 특정 IP 주소를 화이트리스트에 추가하려면 Allow from 지시문을 사용하여 이를 추가할 수 있습니다. Allow from YOUR.IP.ADDRESS.HERE YOUR.IP.ADDRESS.HERE 화이트리스트에 추가하려는 IP 주소로 바꾸십시오. .
  3. 다중 IP 주소 화이트리스트 : 화이트리스트에 IP 주소가 여러 개 있는 경우 다음 Allow from 지시문을 여러 개 추가할 수 있습니다. Allow from IP.ADDRESS.1 Allow from IP.ADDRESS.2
  4. IP 범위 화이트리스트 지정 : IP 주소 범위가 있는 경우 CIDR 표기법 또는 와일드카드 문자를 사용할 수 있습니다. #Using CIDR notation Allow from 123.123.123.0/24 # Using wildcards Allow from 123.123.123.* 위의 두 예는 모두 123.123.123.0 에서 123.123.123.255 까지의 모든 IP 주소를 화이트리스트에 추가하세요.
  5. 저장 및 테스트 : 필요한 Allow from 지시문을 추가한 후 .htaccess 파일을 저장한 다음 이전에 차단된 IP 주소에서 웹 사이트에 액세스해 보십시오. 이제 액세스할 수 있습니다.
  6. 브라우저 캐시 지우기 : 테스트할 때 항상 브라우저 캐시를 지우거나 시크릿/개인 창을 사용하여 최신 변경 사항이 표시되는지 확인하세요.

iptables 사용 :

나. 현재 iptables 규칙 백업 : 변경하기 전에 현재 iptables 규칙을 백업하는 것이 좋습니다.

 sudo iptables-save > /path/to/backupfile.txt

ii. IP 주소 화이트리스트 : 특정 IP 주소의 모든 트래픽을 허용하려면 다음을 수행하십시오.

 sudo iptables -A INPUT -s YOUR.IP.ADDRESS.HERE -j ACCEPT

YOUR.IP.ADDRESS.HERE 화이트리스트에 추가하려는 IP 주소로 바꾸세요.

iii. 변경 사항 저장 : 배포판에 따라 다음을 사용할 수 있습니다.

 sudo service iptables save

또는:

 sudo iptables-save > /etc/sysconfig/iptables

ufw 사용 :

나. UFW가 설치되어 있는지 확인하세요 . 그렇지 않은 경우 배포판의 패키지 관리자를 사용하여 설치할 수 있습니다. 예를 들면 다음과 같습니다.

 sudo apt install ufw # For Ubuntu/Debian sudo yum install ufw # For CentOS (might not be in the default repositories)

ii. UFW 활성화 : 아직 활성화되지 않은 경우 다음을 사용하여 UFW를 켤 수 있습니다.

 sudo ufw enable

iii. IP 주소 화이트리스트 : 특정 IP 주소의 모든 트래픽을 허용하려면 다음을 수행하십시오.

 sudo ufw allow from YOUR.IP.ADDRESS.HERE

YOUR.IP.ADDRESS.HERE 화이트리스트에 추가하려는 IP 주소로 바꾸세요.

iv. 규칙 확인 : 다음을 통해 UFW 규칙을 확인할 수 있습니다.

 sudo ufw status

4. 호스팅 제공업체 지원 찾기 : 때로는 호스팅 제공업체에 문의하면 서버 관련 문제를 식별하고 해결하는 데 도움이 될 수 있습니다.

관련 오류

HTTP 403을 추가로 컨텍스트화하려면 다음 관련 HTTP 상태 코드를 고려하세요.

  1. HTTP 401(인증되지 않음) : 요청에 사용자 인증이 필요합니다.
  2. HTTP 402(결제 필요) : 향후 사용을 위해 예약되어 있으며 결제가 필요함을 나타냅니다.
  3. HTTP 404(찾을 수 없음) : 요청한 리소스를 서버에서 사용할 수 없습니다.

마무리하면서, 최적의 웹 상호 작용을 보장하려면 HTTP 403 "금지됨" 상태 코드의 복잡성을 이해하는 것이 중요합니다. 개발자와 사용자는 정보를 지속적으로 받아 사전 예방적으로 대처함으로써 잠재적인 위험을 탐색하고 원활한 웹 경험을 유지할 수 있습니다.