품질·성능·보안 · 공식 문서
사이트 해킹 방지, 평소 점검할 관리 항목과 순서
구글과 web.dev 공식 문서가 적은 예방 항목은 업데이트·계정·권한·백업·전송·감시의 11가지입니다. 여기에 서치 콘솔 보안 문제 보고서와 site: 검색으로 정기 감시를 더합니다.
해킹 대비는 사고가 난 뒤의 복구보다 평소의 관리 목록으로 합니다. 구글은 이 일을 「끝없는 경계」라고 적었습니다.
이 편은 공격 방법이 아니라 지키는 쪽의 관리 항목만 다룹니다. 항목마다 누가 맡는지와 점검 때 볼 것을 붙였습니다.
발견 01
평소 관리 항목은 11가지이고, 6가지는 서버 권한이 있어야 합니다
The price of freedom from malware is eternal vigilance.
멀웨어에서 자유로우려면 끝없이 경계해야 한다.
| 영역 | 항목 | 누가 | 점검 때 볼 것 | 공식 문서 원문 |
|---|---|---|---|---|
| 업데이트 | 소프트웨어 목록과 버전 | 서버 관리자 | 사이트에 깔린 프로그램·플러그인과 지금 버전이 한 표에 있는가 | Make a list of all the software and plug-ins used for your website, and keep track of the version numbers and updates.사이트에 쓰는 소프트웨어와 플러그인을 모두 목록으로 만들고, 버전과 업데이트를 추적한다. |
| 업데이트 | 자동 업데이트와 보안 공지 | 서버 관리자 | 자동 업데이트가 켜져 있고, 보안 공지를 받는 사람이 정해져 있는가 | Set up automatic updates and sign up for security announcements for your active software.자동 업데이트를 설정하고, 쓰는 소프트웨어의 보안 공지를 구독한다. |
| 업데이트 | 안 쓰는 플러그인·테마 삭제 | 서버 관리자 | 끄기만 한 플러그인이 서버에 파일로 남아 있지 않은가 | Keep themes and plugins up to date. Remove themes or plugins that are no longer maintained. When removing a plugin, make sure to remove all its files from your server rather than just disabling it.테마와 플러그인을 최신으로 유지하고, 관리가 끊긴 것은 지운다. 플러그인을 지울 때는 끄기만 하지 말고 서버에서 파일을 모두 지운다. |
| 계정 | 비밀번호 | 모든 소유자 | 관리자 비밀번호가 다른 서비스와 겹치지 않는가 | Avoid reusing passwords across services. Enforce creation of strong passwords.여러 서비스에 같은 비밀번호를 쓰지 않는다. 강한 비밀번호를 쓰게 한다. |
| 계정 | 2단계 인증 | 모든 소유자 | 관리자 화면과 호스팅 계정에 2단계 인증이 걸려 있는가 | Use two-factor authentication (2FA), such as Google 2-Step Verification.구글 2단계 인증 같은 2단계 인증을 쓴다. |
| 권한 | 관리자 권한 정리 | 모든 소유자 | 퇴사자·외주 계정이 남아 있지 않고, 관리자 권한이 필요한 사람에게만 있는가 | Granting administrative access to users who don't require it. Test access controls and user privileges.필요 없는 사람에게 관리자 권한을 주는 것이 빈틈이다. 접근 제어와 사용자 권한을 점검한다. |
| 권한 | 외부 앱·광고 출처 | 모든 소유자 | 사이트에 붙인 외부 스크립트·광고마다 지원 연락처가 있는 곳인가 | Make sure that third-party apps and ads on your site are from trusted and legitimate sources.사이트의 외부 앱과 광고가 믿을 수 있는 정상 출처의 것인지 확인한다. |
| 백업 | 정기 자동 백업 | 서버 관리자 | 파일·데이터베이스·이미지 백업이 자동으로 돌고, 어느 날짜까지 있는가 | Make regular, automated backups of your site.사이트를 정기적으로 자동 백업한다. |
| 전송 | 암호화된 파일 전송 | 서버 관리자 | 파일을 올릴 때 FTP 대신 SFTP·SSH 를 쓰는가 | Google recommends using SSH and SFTP for data transfer, rather than plain text protocols such as telnet or FTP.구글은 telnet·FTP 같은 평문 프로토콜 대신 SSH·SFTP 로 데이터를 옮기기를 권한다. |
| 감시 | 로그 확인 | 서버 관리자 | 낯선 매개변수나 리디렉션 URL 로 몰린 요청이 로그에 있는가 | Check your logs regularly for suspicious activity.의심스러운 활동이 있는지 로그를 정기적으로 확인한다. |
| 감시 | 작업 기기 관리 | 모든 소유자 | 관리자 화면에 로그인하는 PC 의 운영체제·브라우저가 최신인가 | Keep all devices used to sign in to the machine secure (updated operating system and browser).서버에 로그인하는 모든 기기를 안전하게(운영체제와 브라우저를 최신으로) 유지한다. |
업데이트 항목의 출발점은 목록입니다. 목록이 있어야 업데이트할 대상이 보입니다.
구글은 게시판이나 블로그를 깔아 두고 잊는 일을 흔한 실수로 꼽았습니다(원문: A common pitfall for many website owners is to install a forum or blog on their website and then forget about it.)
호스팅 서버의 운영체제 패치는 호스팅 회사의 일입니다. 구글도 이 점을 따로 적었습니다(원문: Even if you're diligent and keep all your website components updated, you may still be vulnerable if your web hoster has not installed the most recent operating system patches.)
발견 02
web.dev 는 해킹 경로를 6가지로 나눴고, 경로마다 막는 관리 항목이 있습니다
To protect your site from future attacks, it's important to understand how your site was compromised.
다음 공격을 막으려면 사이트가 어떻게 뚫렸는지 이해하는 것이 중요하다.
| 해킹 경로 | 막는 관리 항목 | web.dev 원문 |
|---|---|---|
| 비밀번호 유출 | 비밀번호 · 2단계 인증 | Avoid reusing passwords across services.여러 서비스에 같은 비밀번호를 쓰지 않는다. |
| 놓친 보안 업데이트 | 소프트웨어 목록과 버전 · 자동 업데이트와 보안 공지 | Attackers actively seek out old software with vulnerabilities.공격자는 취약점이 있는 옛 소프트웨어를 적극적으로 찾는다. |
| 취약한 테마·플러그인 | 안 쓰는 플러그인·테마 삭제 | Keep themes and plugins up to date. Remove themes or plugins that are no longer maintained.테마와 플러그인을 최신으로 유지하고, 관리가 끊긴 것은 지운다. |
| 사회공학(속여서 정보 받아 내기) | 관리자 권한 정리 · 운영자 교육 | If multiple people manage your site, provide training to raise awareness of social engineering.여러 사람이 사이트를 관리하면 사회공학에 대한 경각심을 높이는 교육을 한다. |
| 보안 정책의 빈틈 | 관리자 권한 정리 · 로그 확인 | Granting administrative access to users who don't require it.필요 없는 사람에게 관리자 권한을 주는 것(보안 정책의 빈틈 예). |
| 데이터 노출 | 정기 점검으로 민감한 정보가 공개 URL 에 없는지 확인 | Ensure your site doesn't reveal sensitive information by conducting periodic checks and restricting confidential data.정기 점검과 기밀 데이터 접근 제한으로 사이트가 민감한 정보를 드러내지 않게 한다. |
외부 소프트웨어는 설치 전에 봅니다. 한 프로그램의 취약점이 사이트 전체로 번지기 때문입니다.
web.dev 는 이것을 장기 관리 계획의 한 줄로 적었습니다(원문: Understand the security practices of all applications, plugins, and other third-party software before you install them on your server. A security vulnerability in one software application can affect the safety of your entire site.)
발견 03
정기 감시는 site: 검색, 보안 문제 보고서, 메시지 이메일 전달의 3가지로 합니다
| 도구 | 보는 것 | 구글 원문 |
|---|---|---|
| site: 검색 | 내가 만들지 않은 페이지·주제가 색인에 있는지 | It's always a good idea to do this periodically to see whether anyone has snuck unexpected pages or content on your site. If you see unknown pages on your site, or topics that you didn't write, you may have been hacked.누군가 예상치 못한 페이지나 콘텐츠를 몰래 넣지 않았는지 주기적으로 확인하는 것이 좋다. 모르는 페이지나 쓰지 않은 주제가 보이면 해킹당했을 수 있다. |
| 서치 콘솔 보안 문제 보고서 | 구글이 찾은 해킹 페이지와 고치는 방법 | The Security Issues report shows any hacked pages that Google has identified on your site, and instructions on how to fix the problem.보안 문제 보고서는 구글이 찾은 해킹된 페이지와 고치는 방법을 보여 준다. |
| 서치 콘솔 메시지 이메일 전달 | 멀웨어가 감지되면 바로 받는 알림 | If Google detects malware on your site, you'll see a notification in the message panel in Search Console. To ensure that you're notified quickly, you can have your messages forwarded to your email account.구글이 사이트에서 멀웨어를 감지하면 서치 콘솔 메시지 패널에 알림이 뜬다. 메시지를 이메일로 전달받게 하면 빨리 알 수 있다. |
감시는 해킹이 이미 일어났는지를 일찍 알아채는 장치입니다. 내가 쓰지 않은 주제의 페이지가 검색에 보이면 그때가 신호입니다.
해킹됐는지 확인하는 순서는 「사이트 해킹 확인」 편, 경고가 떴는지는 「세이프 브라우징 사이트 상태 확인」 편에 자세히 적었습니다.
발견 04
같은 항목도 B2B·B2C·B2G 사이트는 먼저 손볼 자리가 다릅니다
예시 ① 산업 장비 제조사의 문의형 기업 사이트(B2B)
제작을 맡긴 외주사의 관리자 계정과 FTP 계정이 공개 뒤에도 남아 있는 경우가 많습니다. 권한 정리가 첫 항목입니다.
외주 계정을 지우고 남은 계정에 2단계 인증을 겁니다. 파일 전송은 SFTP 로 바꿉니다.
예시 ② 호스팅형 플랫폼을 쓰는 자사 쇼핑몰(B2C)
서버 패치와 서버 설정은 플랫폼의 몫입니다. 운영자는 관리자 계정, 직원 권한, 붙인 외부 앱·광고 스크립트를 맡습니다.
마케팅용 추적 코드와 외부 앱이 쌓이기 쉬우므로, 붙인 스크립트 목록과 제공처 연락처를 한 표로 둡니다.
예시 ③ 유지보수 사업자가 바뀌는 공공기관 누리집(B2G)
사업자가 바뀔 때 소프트웨어 목록과 버전, 백업 위치, 관리자 계정 목록을 인수인계 항목으로 받습니다.
이전 사업자의 계정은 인수인계 당일에 회수합니다. 인수인계 항목은 「홈페이지 유지보수 업무 범위」 편에 자세히 적었습니다.
그럼 오늘부터 무엇을 어떤 순서로 하나요?
- 사이트에 깔린 프로그램·플러그인과 버전을 한 표로 만듭니다. 서버가 호스팅 회사에 있으면 패치 주기를 문의합니다.
- 자동 업데이트를 켜고 보안 공지를 받을 담당자를 정합니다. 쓰지 않는 플러그인·테마는 서버의 파일까지 지웁니다.
- 관리자 계정 목록을 뽑아 퇴사자·외주 계정을 지우고, 남은 계정에 2단계 인증을 겁니다.
- 파일 전송을 FTP 에서 SFTP·SSH 로 바꾸고, 자동 백업이 어느 날짜까지 있는지 확인합니다.
- 서치 콘솔에 사이트를 등록하고 메시지가 이메일로 오게 설정합니다. 등록은 「구글 서치콘솔 등록」 편에 적었습니다.
- 달마다 site: 검색과 보안 문제 보고서를 보고, 낯선 페이지가 있으면 「사이트 해킹 경고 해제」 편 순서로 넘어갑니다.
조사 방법
- Google Search Central 「Preventing malware infection」 (문서 수정일 2025-12-10) · 최종 확인일 2026-10-25 · https://developers.google.com/search/docs/monitor-debug/security/prevent-malware
- web.dev (Google) 「Top ways sites get hacked by spammers」 (문서 수정일 2015-01-01) · 최종 확인일 2026-10-25 · https://web.dev/articles/top-ways-sites-get-hacked-by-spammers
- web.dev (Google) 「Clean and maintain your site」 (문서 수정일 2015-01-01) · 최종 확인일 2026-10-25 · https://web.dev/articles/clean-and-maintain-your-site
- 관리 항목 11가지는 위 문서들이 예방과 장기 관리로 적은 일을 점검 단위로 묶은 것입니다. 묶는 방식과 「누가」 칸은 편집 판단입니다.
- 예시 ①②③은 이해를 돕기 위해 만든 가상 상황이며, 실제 기업·기관의 사례가 아닙니다.
- 원문은 영어판(hl=en)이고, 도구·보고서 이름은 같은 문서 한국어판(hl=ko) 표기를 따랐습니다.