가바아 웹호스팅에서 운영 중인 워드프레스 사이트에서 403 Forbidden 오류가 발생하는 문제의 해결을 맡았습니다. 워드프레스 관리자 페이지에서 상품을 등록하는 과정에서 403 오류가 발생했고, 이후 가비아에 요청하여 사이트를 복원시켰지만 여전히 403 오류 화면이 표시되어 사이트에 접속하지 못하는 상황이 발생하고 있었습니다.
가비아 워드프레스 사이트의 403 Forbidden 오류 해결
문제의 사이트에 접속하니 그림과 같이 "403 Forbidden 요청한 페이지에 접근 권한이 없습니다" 에러가 발생했습니다.

FTP를 통해 서버에 접속해보니 이상하게 워드프레스 사이트가 wordpress 하위 폴더에 설치되어 있었고, 필요한 일부 파일 설정이 잘못되어 있었습니다.
하위 폴더에 워드프레스를 설치하는 경우 루트 폴더와 하위 폴더(이 경우 wordpress) 내의 .htaccess 파일과 루트 폴더 내의 index.html 파일을 수정하고, 사이트 주소도 제대로 설정해야 합니다.

이 작업을 진행하니 사이트에 접속이 되었지만, 이미지가 모두 엑박으로 표시되었습니다. 구글 크롬의 개발자 도구 콘솔에는 다음과 같은 에러가 발생하고 있었습니다.
Mixed Content: The page at 'https://your-domain.com/' was loaded over HTTPS, but requested an insecure font 'http://errdoc.gabia.io/403.html'. This request has been blocked; the content must be served over HTTPS.Understand this error wp-i18n-js-after:3 Uncaught ReferenceError: wp is not defined at wp-i18n-js-after:3:1 (anonymous) @ wp-i18n-js-after:3Understand this error contact-form-7-js-translations:6 Uncaught ReferenceError: wp is not defined at contact-form-7-js-translations:6:2 at contact-form-7-js-translations:7:4 (anonymous) @ contact-form-7-js-translations:6 (anonymous) @ contact-form-7-js-translations:7Understand this error (index):1 Mixed Content: The page at 'https://your-domain.com/' was loaded over HTTPS, but requested an insecure font 'http://errdoc.gabia.io/403.html'. This request has been blocked; the content must be served over HTTPS.Understand this error (index):1 Mixed Content: The page at 'https://your-domain.com/' was loaded over HTTPS, but requested an insecure favicon 'http://errdoc.gabia.io/403.html'. This request has been blocked; the content must be served over HTTPS.Understand this error (index):1 Mixed Content: The page at 'https://your-domain.com/' was loaded over HTTPS, but requested an insecure favicon 'http://errdoc.gabia.io/403.html'. This request has been blocked; the content must be served over HTTPS.
폴더와 파일 권한 설정이 잘못된 것 같아서 재설정하니 이미지 엑박 현상이 사라지고 사이트에 접근이 가능해졌습니다.

하지만 상품을 편집하려고 시도하면 여전히 403 오류가 발생하고 있었습니다.
이 문제를 심도있게(?) 체크하여 얻은 결과는 관리자 페이지에서 사용자가 "편집" 버튼을 눌러 데이터를 전송(post.php)하자마자, 가비아 보안 장비가 이를 가로채 위험한 요청으로 판단하여 403.html로 리다이렉트시킨 것으로 강하게 의심되었습니다.
실제로 가비아에 참고가 될 만한 데이터를 전달하여 방화벽 설정을 체크해줄 것을 요청하니 "웹 방화벽 업데이트 이후 증상이 발생한 것으로 추정되며, 방화벽 설정을 최소한으로 변경"했다는 답변을 받았습니다.

가비아에서 방화벽 설정을 변경한 후에 접속하니 우커머스 상품 페이지 편집 페이지에 정상적으로 접근할 수 있게 되었습니다.
참고로 이미지 파일 이름에 한글이 포함될 경우 한글이 깨져서 엑박으로 표시될 수 있습니다. 실제로 문제의 사이트에서 권한 설정을 하는 과정에서 한글로 된 이미지 파일은 권한 설정 변경에 모두 실패했습니다.

일부 한글이 깨진 이미지 파일에 대하여 '명령을 8비트 문자셋으로 변환하지 못함' 오류가 발생하는데요, "해당 변환(인코딩 변환)을 FTP 클라이언트가 실패해서 명령 자체를 서버에 못 보냈음을 의미"합니다.
가급적 이미지 파일 이름에는 한글이나 일본어 등 비라틴 문자를 사용하지 말고, 가능하면 숫자와 영문 글자만 사용하는 것이 안전합니다. 특히 맥에서 한글 이미지 파일을 업로드할 경우, Linux에서 윈도우로 다운로드하면 파일 이름 내의 한글은 자모가 분리되는 당황스러운 상황이 발생하기도 합니다.
마치며
403 Forbidden 오류는 여러 가지 원인으로 발생합니다. 워드프레스에 설치된 보안 플러그인이나 서버 방화벽에 의해 이 오류가 발생할 수 있으므로, 먼저는 방화벽 설정을 체크하시기 바랍니다.
웹호스팅 업체에서 방화벽 규칙을 업데이트하면서 이처럼 예상치 못한 차단 문제가 발생할 수 있습니다. 방화벽에 의해 차단된다면 403 에러가 발생하므로, 여러 가지 조치에도 문제가 해결되지 않으면 호스팅 업체에 연락하여 방화벽에 의해 차단된 것이 아닌지 문의해볼 수 있습니다.
👉 워드프레스나 웹호스팅 관련 문제 해결에 어려움을 겪는 경우 여기에서 서비스(유료)를 의뢰하실 수 있습니다.
참고
https://avada.tistory.com/3851
카페24 워드프레스 치명적인 오류, 낮은 PHP 버전, 웹용량 부족 문제 대응하기
카페24에서 호스팅되는 워드프레스에서 여러 가지 문제가 발생하여 문제 해결을 요청해왔습니다. 담당자분이 워드프레스에 대해 잘 모르는 상태에서 회사에서 홈페이지 관리 업무를 넘겨받아
avada.tistory.com
https://avada.tistory.com/3783
가비아에서 클라우드웨이즈(Cloudways)로 워드프레스 이전 작업
가비아에서 호스팅되고 있는 워드프레스 사이트가 메모리 부족 때문에 에러가 발생하여 클라우드웨이즈(Cloudways)로 이전하는 작업을 진행했습니다. 가비아의 경우 PHP Memory Limit이 256MB로 제한되
avada.tistory.com