
기업 홈페이지 보안, 기본적으로 무엇을 준비해야 할까요?
홈페이지 보안은 문제가 발생한 뒤 대응하는 것이 아니라, 제작할 때부터 준비해야 합니다
기업 홈페이지를 운영하면서 보안의 중요성을 모르는 담당자는 거의 없습니다.
하지만 실제 홈페이지 제작 과정에서는 디자인, 기능, 일정, 비용을 먼저 검토하다 보니 보안은 상대적으로 뒤로 밀리는 경우가 많습니다.
“우리 홈페이지에는 중요한 정보가 없는데 괜찮지 않을까요?”
“회원가입도 없고 회사 소개 홈페이지인데 해킹을 당할 일이 있을까요?”
이렇게 생각하는 경우도 있습니다.
하지만 일반적인 기업 홈페이지에도 문의하기, 게시판, 관리자 페이지, 파일 업로드, 데이터베이스 등 외부에서 접근할 수 있는 다양한 기능이 존재합니다.
특히 홈페이지는 인터넷에 공개되어 있기 때문에 규모가 작은 사이트라고 해서 공격 대상에서 제외되는 것은 아닙니다.
보안 사고가 발생하면 홈페이지가 잠시 접속되지 않는 것으로 끝나지 않을 수도 있습니다.
고객 정보가 유출되거나 홈페이지가 변조되고, 악성코드가 삽입되거나 검색엔진에서 위험한 사이트로 인식되는 등의 문제가 발생할 수 있습니다.
이번 글에서는 기업 홈페이지를 제작하고 운영할 때 기본적으로 어떤 보안을 준비해야 하는지 알아보겠습니다.
1. 기업 홈페이지도 보안이 필요한 이유
“우리 홈페이지에는 별다른 정보가 없는데요.”
기업 홈페이지 상담을 진행하면서 종종 듣는 이야기입니다.
하지만 홈페이지에 회원 기능이 없더라도 다음과 같은 기능은 사용되는 경우가 많습니다.
- 문의하기
- 게시판
- 관리자 페이지
- 파일 업로드
- 검색 기능
- 이메일 발송
- 외부 API
- 데이터베이스
이러한 기능들은 모두 외부의 입력이나 접근이 발생할 수 있는 영역입니다.
예를 들어 문의하기 페이지에는 이름, 연락처, 이메일, 회사명 등의 정보가 저장될 수 있습니다.
관리자 페이지가 공격을 받으면 홈페이지의 콘텐츠가 임의로 변경되거나 삭제될 수도 있습니다.
따라서 홈페이지 보안은 대형 쇼핑몰이나 금융 서비스만의 문제가 아닙니다.
일반적인 기업 홈페이지에서도 기본적인 보안은 반드시 고려해야 합니다.
2. HTTPS와 SSL은 기본입니다
홈페이지 주소를 보면 http://와 https://로 시작하는 사이트가 있습니다.
HTTPS는 홈페이지와 방문자 사이에서 전달되는 데이터를 암호화하여 통신할 수 있도록 하는 방식입니다.
HTTPS 통신을 위해 SSL/TLS 인증서를 적용합니다. 일반적으로 ‘SSL 인증서’라고 부르지만 현재 웹 통신에서는 TLS 기반 암호화가 주로 사용됩니다.
현재 기업 홈페이지라면 HTTPS 적용은 사실상 기본이라고 볼 수 있습니다.
SSL이 정상적으로 적용되지 않으면 브라우저에서 보안 관련 경고가 표시될 수 있으며, 이는 방문자의 신뢰에도 좋지 않은 영향을 줄 수 있습니다.
또한 인증서를 적용하는 것으로 끝나는 것이 아니라 다음 사항도 관리해야 합니다.
- SSL 인증서 정상 적용 여부
- 인증서 만료일
- 자동 갱신 여부
- HTTP → HTTPS 연결
- 인증서 오류 여부
무료 SSL 인증서를 사용하는 경우에도 정상적인 갱신 구조가 구성되어 있는지 확인하는 것이 중요합니다.
3. 관리자 페이지 보안이 중요합니다
기업 홈페이지에서 가장 중요한 영역 중 하나가 관리자 페이지입니다.
관리자에서는 일반적으로 다음과 같은 작업을 할 수 있습니다.
- 게시물 등록 및 삭제
- 제품 관리
- 문의 내역 확인
- 회원 관리
- 팝업 및 배너 관리
- 홈페이지 콘텐츠 수정
따라서 관리자 계정이 탈취되면 홈페이지의 상당 부분을 제어할 수 있게 됩니다.
기본적으로 다음과 같은 사항을 확인하는 것이 좋습니다.
- 쉬운 관리자 ID 사용 금지
- 복잡한 비밀번호 사용
- 초기 비밀번호 변경
- 퇴사자 계정 삭제
- 불필요한 관리자 계정 정리
- 관리자별 권한 분리
- 로그인 실패 제한
- 접속 기록 관리
특히 admin / admin1234처럼 쉽게 예상할 수 있는 계정을 사용하는 것은 피해야 합니다.
관리자가 여러 명이라면 하나의 계정을 공유하기보다 개별 계정을 발급하고 필요한 권한만 부여하는 방식이 좋습니다.
관리자 권한은 필요한 기능만 사용할 수 있도록 최소한으로 부여하는 것이 좋습니다. 콘텐츠 등록만 필요한 담당자에게 서버 설정이나 다른 관리자 계정까지 변경할 수 있는 권한을 제공할 필요는 없습니다.
4. SQL Injection을 방어해야 합니다
SQL Injection은 홈페이지의 입력값을 악용해 데이터베이스에 비정상적인 명령을 실행하려는 공격 방식입니다.
예를 들어 로그인, 검색, 문의하기 등 사용자가 값을 입력할 수 있는 영역에서 발생할 수 있습니다.
공격에 성공하면 데이터베이스의 정보를 조회하거나 변경하는 등의 문제가 발생할 가능성이 있습니다.
따라서 개발 과정에서 사용자의 입력값을 그대로 SQL에 연결하는 방식은 피해야 합니다.
Prepared Statement와 Parameter Binding 등 안전한 데이터베이스 처리 방식을 사용하는 것이 중요합니다. 즉, 사용자가 입력한 값을 데이터베이스 명령문과 안전하게 분리하여 처리해야 합니다.
기업 담당자가 이러한 개발 방법을 모두 이해할 필요는 없습니다.
다만 홈페이지 제작 업체에
“SQL Injection과 같은 기본적인 웹 공격에 대한 방어가 적용되어 있나요?”
정도는 확인해 보는 것이 좋습니다.
5. XSS 공격도 확인해야 합니다
XSS(Cross-Site Scripting)는 게시판이나 문의 내용 등의 입력 영역을 통해 악성 스크립트가 실행되도록 만드는 공격 방식입니다.
예를 들어 사용자가 입력한 내용을 아무런 검증 없이 홈페이지에 다시 출력하면 문제가 발생할 수 있습니다.
특히 다음과 같은 기능이 있다면 주의해야 합니다.
- 게시판
- 댓글
- 문의하기
- 검색
- 사용자 프로필
- 에디터
사용자가 입력하는 값은 적절하게 검증하고 출력 과정에서도 안전하게 처리해야 합니다.
보안에서는 사용자가 입력한 데이터를 기본적으로 신뢰하지 않는 것이 중요합니다.
6. 파일 업로드 기능은 특히 주의해야 합니다
홈페이지에는 생각보다 파일 업로드 기능이 다양한 영역에서 사용됩니다
- 문의하기 첨부파일
- 게시판 첨부파일
- 제품 자료
- 채용 지원서
- 관리자 이미지 등록
문제는 파일 업로드 기능을 제대로 제한하지 않으면 악성 파일이 서버에 업로드될 가능성이 있다는 것입니다.
따라서 다음과 같은 항목을 확인해야 합니다.
- 허용 파일 확장자
- 파일 MIME 타입
- 파일 크기 제한
- 파일명 처리
- 업로드 경로
- 실행 가능한 파일 차단
- 다운로드 권한
업로드된 파일의 저장 위치에서는 프로그램 실행 권한을 제한하는 방식도 함께 검토할 수 있습니다.
특히 서버에서 실행될 수 있는 파일이 업로드 영역을 통해 실행되지 않도록 구성하는 것이 중요합니다.
7. 문의하기에는 스팸 방지가 필요합니다
기업 홈페이지를 운영하다 보면 문의하기나 게시판에 스팸이 반복적으로 등록되는 경우가 있습니다.
사람이 직접 작성하는 것이 아니라 자동화된 프로그램이 반복적으로 데이터를 등록하는 경우도 많습니다.
스팸이 많아지면 정상적인 고객 문의를 놓칠 수 있고 불필요한 이메일이나 데이터가 계속 쌓일 수 있습니다.
이를 방지하기 위해 상황에 따라 다음과 같은 방법을 사용할 수 있습니다.
- CAPTCHA
- reCAPTCHA 등의 봇 방지 기능
- 허니팟(Honeypot)
- 등록 횟수 제한
- 비정상 요청 차단
- 입력값 검증
다만 보안을 지나치게 강화하여 실제 고객의 문의 과정까지 불편하게 만들어서는 안 됩니다.
보안과 사용성 사이의 균형을 고려하는 것이 중요합니다.
8. 서버와 개발 환경도 함께 관리해야 합니다
홈페이지 소스만 안전하게 개발한다고 모든 보안 문제가 해결되는 것은 아닙니다.
홈페이지가 실행되는 서버 환경 역시 중요합니다.
예를 들어 다음과 같은 항목이 있습니다.
- 운영체제
- 웹 서버
- PHP·Java·Node.js 등의 실행 환경
- 데이터베이스
- 라이브러리
- 프레임워크
- 외부 패키지
오래된 버전에는 이미 알려진 보안 취약점이 존재할 수 있습니다.
따라서 사용하고 있는 환경의 지원 종료 여부와 보안 업데이트 상태를 확인하는 것이 좋습니다.
다만 최신 버전이 나왔다고 무조건 즉시 업데이트하는 것도 위험할 수 있습니다.
기존 홈페이지와의 호환성을 확인하고 테스트 환경에서 충분히 검증한 뒤 적용하는 것이 안전합니다.
따라서 현재 사용 중인 버전의 보안 지원 여부를 확인하고, 업데이트가 필요한 경우 테스트 환경에서 기존 기능과의 호환성을 검증한 뒤 적용하는 것이 좋습니다.
9. 백업 역시 보안의 일부입니다
보안이라고 하면 공격을 막는 것만 생각하기 쉽습니다.
하지만 문제가 발생했을 때 정상 상태로 복구할 수 있도록 준비하는 것 역시 매우 중요합니다.
홈페이지가 변조되거나 데이터가 손상되었을 때 정상적인 백업이 없다면 복구가 어려울 수 있습니다.
일반적으로 다음 항목을 백업합니다.
- 홈페이지 소스
- 데이터베이스
- 업로드 파일
- 이미지 및 첨부파일
- 서버 주요 설정
그리고 백업 파일을 같은 서버에만 보관하는 것보다 별도의 저장 공간을 함께 활용하는 것이 더 안전할 수 있습니다.
가장 중요한 것은 백업 파일이 존재하는지가 아니라 실제로 복구 가능한 상태인가입니다.
10. 개인정보는 꼭 필요한 정보만 수집해야 합니다
수집하지 않는 개인정보는 유출될 위험도 없습니다.
문의하기 페이지를 만들면서 기업에서 많은 정보를 받고 싶어 하는 경우가 있습니다.
하지만 필요 이상의 개인정보를 수집하면 관리해야 할 정보 역시 많아집니다.
예를 들어 단순 상담 문의에 주민등록번호와 같은 과도한 개인정보를 요구할 이유는 없습니다.
홈페이지에서 개인정보를 수집한다면 다음 사항을 함께 검토해야 합니다.
- 어떤 정보를 수집하는가?
- 왜 수집하는가?
- 얼마 동안 보관하는가?
- 누가 확인할 수 있는가?
- 어떻게 삭제하는가?
그리고 개인정보 처리방침 및 필요한 동의 절차도 홈페이지의 실제 운영 방식과 맞게 구성해야 합니다.
이전글
11. 개발 서버와 운영 서버를 구분하는 것이 좋습니다
홈페이지 유지보수 글에서도 설명했지만 운영 중인 홈페이지에서 바로 프로그램을 수정하는 방식은 주의해야 합니다.
특히 보안 관련 업데이트는 기존 기능에 영향을 줄 수도 있습니다.
가능하다면
개발 또는 테스트 환경에서 수정
→ 기능 테스트
→ 보안 확인
→ 고객사 검수
→ 운영 서버 적용
순서로 진행하는 것이 안전합니다.
운영 서버에서 바로 수정하다가 문제가 발생하면 실제 고객이 이용하는 홈페이지에 장애가 그대로 노출될 수 있기 때문입니다.
12. 로그를 확인할 수 있어야 합니다
문제가 발생했을 때 원인을 파악하려면 기록이 필요합니다.
서버와 홈페이지에서는 다양한 로그가 생성될 수 있습니다.
- 접속 기록
- 오류 기록
- 관리자 로그인 기록
- 프로그램 오류
- 비정상적인 접근 기록
이러한 로그는 장애나 보안 문제가 발생했을 때 원인을 확인하는 중요한 자료가 됩니다.
로그를 무조건 오랫동안 저장하는 것이 중요한 것이 아니라 필요한 기록을 적절한 기간 동안
관리하고 문제가 발생했을 때 확인할 수 있는 체계를 갖추는 것이 중요합니다.
실제 프로젝트에서 자주 있었던 사례
홈페이지 보안과 관련된 문의를 받다 보면 “어제까지 잘 됐는데 갑자기 이상해졌다”는 연락을 받는 경우가 있습니다.
확인해 보면 홈페이지 자체의 디자인이나 콘텐츠에는 문제가 없어 보이지만 오래된 프로그램이나 서버 환경이 원인이 되는 경우도 있습니다.
또 다른 사례로는 관리자 계정을 여러 직원과 외주 업체가 함께 사용하다가 누가 어떤 콘텐츠를 수정했는지 확인하기 어려웠던 경우도 있었습니다.
홈페이지가 정상적으로 보인다고 해서 보안까지 정상적으로 관리되고 있다고 판단하기는 어렵습니다.
특히 오래전에 제작된 홈페이지라면 당시에는 문제가 없었던 개발 환경이라도 현재는 지원이 종료되었거나 알려진 취약점이 존재할 수 있습니다.
클리프에서도 홈페이지를 신규 제작하거나 리뉴얼할 때 단순히 화면에 보이는 기능만 확인하는 것이 아니라
서버 환경, 관리자 접근, 문의 데이터, 파일 업로드, 입력값 처리 등 운영 과정에서 문제가 될 수 있는 영역을 함께 검토합니다.
그리고 보안은 한 번 설정하고 끝나는 작업이 아닙니다.
홈페이지의 기능이 변경되고 서버 환경이 업데이트되며 새로운 공격 방식이 등장하기 때문에 운영 과정에서도 지속적인 점검이 필요합니다.
최근 진행한 기업 홈페이지 프로젝트에서는 관리자 기능을 여러 담당자가 사용할 수 있어 권한 관리가 중요한 요구사항 중 하나였습니다.
이를 위해 최고 관리자와 서브 관리자를 구분하고, 각 관리자별로 필요한 기능만 사용할 수 있도록 권한을 나누어 설계했습니다.
또한 서브 관리자의 접속 IP, 접속 시간, 주요 활동 이력을 확인할 수 있도록 구성했으며, 고정된 네트워크를 사용하는 일부 관리자 계정은 지정된 IP에서만 접근할 수 있도록 제한했습니다.
기존 홈페이지에서는 하나의 관리자 계정을 여러 명이 함께 사용하고 있어 누가 어떤 내용을 수정했는지 확인하기 어려웠지만, 리뉴얼 이후에는 관리자별 활동을 구분해 확인할 수 있도록 개선했습니다.
이처럼 홈페이지 보안은 모든 사이트에 동일한 기능을 적용하는 것이 아니라 실제 운영 인원과 관리 방식에 맞춰 설계하는 것이 중요합니다.
따라서 홈페이지를 기획할 때부터 담당자와 운영 환경을 충분히 논의하고 필요한 보안 수준을 함께 결정하는 것이 좋습니다.
CLEF TIP
홈페이지 보안에서 가장 위험한 생각은 “지금까지 문제가 없었으니 앞으로도 괜찮을 것이다”라고 생각하는 것입니다.
보안은 사고가 발생하지 않았다는 것을 확인하는 작업이 아니라 사고가 발생할 가능성을 줄이는 과정입니다.
홈페이지를 제작하거나 리뉴얼한다면 디자인과 기능만 확인하지 말고 관리자, 서버, 파일 업로드, 개인정보, 백업까지 함께 확인해 보세요.
기업 홈페이지 보안 체크리스트
아래 항목을 기준으로 현재 홈페이지를 확인해 보세요.
- HTTPS가 정상적으로 적용되어 있는가?
- SSL 인증서가 정상적으로 갱신되는가?
- 관리자 비밀번호가 안전하게 관리되고 있는가?
- 사용하지 않는 관리자 계정이 삭제되어 있는가?
- 관리자별 권한이 구분되어 있는가?
- SQL Injection 방어가 적용되어 있는가?
- XSS 방어가 적용되어 있는가?
- 파일 업로드에 제한이 적용되어 있는가?
- 문의하기에 스팸 방지 기능이 있는가?
- 사용 중인 개발 환경이 지나치게 오래되지 않았는가?
- 정기적으로 백업하고 있는가?
- 백업 데이터로 실제 복구가 가능한가?
- 개인정보를 필요한 범위에서만 수집하고 있는가?
- 개발·테스트 환경과 운영 환경이 구분되어 있는가?
- 장애 및 접근 로그를 확인할 수 있는가?
- 퇴사자와 외주 업체의 접근 권한이 정리되어 있는가?
- 관리자 로그인 실패 횟수 제한이 적용되어 있는가?
- 관리자 및 중요 시스템의 접근 기록을 확인할 수 있는가?
- 사용 중인 라이브러리·프레임워크의 보안 지원 상태를 확인하고 있는가?
자주 묻는 질문(FAQ)
Q. 회사 소개 홈페이지도 해킹될 수 있나요?
네. 회원 기능이 없는 일반적인 기업 홈페이지라도 관리자, 게시판, 문의하기, 파일 업로드 등의 기능이 있다면 외부 공격의 대상이 될 수 있습니다.
Q. SSL 인증서를 설치하면 홈페이지가 안전한가요?
SSL은 데이터를 암호화하여 전송하는 중요한 보안 요소이지만 홈페이지 전체의 보안을 의미하지는 않습니다. 관리자 보안, 프로그램 보안, 서버 관리 등도 함께 필요합니다.
Q. 보안 업데이트는 얼마나 자주 해야 하나요?
일률적인 기간을 정하기보다는 사용 중인 운영체제, 프레임워크, 라이브러리 등의 보안 업데이트와 지원 상태를 지속적으로 확인하는 것이 좋습니다.
Q. 관리자 페이지 주소를 숨기면 안전한가요?
주소를 쉽게 추측하기 어렵게 구성하는 것은 보조적인 방법이 될 수 있지만 그것만으로 충분하지 않습니다.
계정과 비밀번호, 접근 권한, 로그인 제한 등 실질적인 보안 조치가 함께 필요합니다.
Q. 백업도 보안에 포함되나요?
네. 공격이나 오류로 데이터가 손상되었을 때 정상 상태로 복구할 수 있어야 하기 때문에 백업과 복구 체계도 중요한 보안 요소입니다.
Q. 기존 홈페이지의 보안 상태도 점검할 수 있나요?
가능합니다. 다만 홈페이지 소스뿐 아니라 서버 환경, 개발 언어와 버전, 관리자 기능, 데이터베이스, 외부 연동 등 현재 구조를 함께 확인해야 정확한 판단이 가능합니다.
홈페이지 보안은 특정한 기능 하나를 설치한다고 완성되는 것이 아닙니다.
SSL, 관리자 계정, 프로그램, 서버, 데이터베이스, 파일 업로드, 개인정보, 백업 등 여러 요소가 함께 관리되어야 합니다.
특히 기업 홈페이지는 한 번 제작하면 여러 해 동안 사용하는 경우가 많기 때문에 처음 제작할 때부터 운영과 보안을 함께 고려하는 것이 중요합니다.
현재 홈페이지가 정상적으로 작동하고 있다고 해서 보안까지 문제가 없다고 단정할 수는 없습니다.
오래된 홈페이지를 운영하고 있다면 현재 사용 중인 개발 환경과 관리자 계정, 서버, 백업 상태부터 한 번 확인해 보시길 바랍니다.
좋은 홈페이지는 디자인과 기능이 뛰어난 홈페이지에서 끝나지 않습니다.
고객과 기업의 정보를 안전하게 보호하면서 오랫동안 안정적으로 운영할 수 있는 홈페이지여야 합니다.
이전글
홈페이지 제작 후 반드시 해야 하는 운영 및 유지보수 체크리스트
다음 글
관련 CLEF WEB 서비스
기업 홈페이지는 디자인과 기능뿐 아니라 서버 환경, SSL, 데이터 보호 등 기본적인 기술 구조도 함께 고려해야 합니다.
클리프 WEB의 홈페이지 기술·서비스 범위를 확인해 보세요.
[홈페이지 보안·기술서비스 확인하기 | 클리프 WEB →]