{"componentChunkName":"component---src-templates-blog-post-js","path":"/etc/웹사이트-보안-스캔-도구와-취약점-점검-가이드/","result":{"data":{"site":{"siteMetadata":{"title":"Bottlehs Tech Blog","description":"웹·앱·AI 개발자 전병훈(bottlehs)의 기술 블로그. AI·LLM, JavaScript·Vue, Spring Boot, 알고리즘, 블록체인 실무 가이드를 다룹니다","siteUrl":"https://www.bottlehs.dev","author":{"name":"Jeon Byung Hun","summary":"개발을 즐기는 bottlehs - Engineer, MS, AI, FE, BE, OS, IOT, Blockchain, 설계, 테스트"},"social":{"github":"bottlehs","codepen":"bottlehs"}}},"markdownRemark":{"id":"06125fda-fe7b-594b-ac2e-1a2f3ecbd825","excerpt":"웹사이트 보안 스캔 도구와 취약점 점검 가이드 웹 애플리케이션 보안은 단순한 선택이 아닌 필수 항목이다. 취약점을 조기에 발견하고 수정하면 큰 보안 사고를 예방할 수 있다. 이 글은 웹사이트 보안을 점검하는 실무 도구들을 정리하고 활용 방법을 안내한다.…","html":"<p><img src=\"/assets/etc.png\" alt=\"웹사이트 보안 스캔 도구와 취약점 점검 가이드\" title=\"웹사이트 보안 스캔 도구와 취약점 점검 가이드\"></p>\n<p>웹 애플리케이션 보안은 단순한 선택이 아닌 필수 항목이다. 취약점을 조기에 발견하고 수정하면 큰 보안 사고를 예방할 수 있다. 이 글은 웹사이트 보안을 점검하는 실무 도구들을 정리하고 활용 방법을 안내한다.</p>\n<h2 id=\"1-보안-스캔-도구-개요\" style=\"position:relative;\"><a href=\"#1-%EB%B3%B4%EC%95%88-%EC%8A%A4%EC%BA%94-%EB%8F%84%EA%B5%AC-%EA%B0%9C%EC%9A%94\" aria-label=\"1 보안 스캔 도구 개요 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>1. 보안 스캔 도구 개요</h2>\n<h3 id=\"owasp-zap\" style=\"position:relative;\"><a href=\"#owasp-zap\" aria-label=\"owasp zap permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>OWASP ZAP</h3>\n<p><strong>타입</strong>: 오픈소스 웹 애플리케이션 보안 스캐너<br>\n<strong>플랫폼</strong>: 데스크톱, Docker, CI/CD<br>\n<strong>가격</strong>: 무료</p>\n<h3 id=\"snyk\" style=\"position:relative;\"><a href=\"#snyk\" aria-label=\"snyk permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Snyk</h3>\n<p><strong>타입</strong>: 의존성 취약점 스캐너<br>\n<strong>플랫폼</strong>: CLI, IDE, CI/CD<br>\n<strong>가격</strong>: 무료 플랜 + 유료</p>\n<h3 id=\"npm-audit\" style=\"position:relative;\"><a href=\"#npm-audit\" aria-label=\"npm audit permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>npm audit</h3>\n<p><strong>타입</strong>: npm 패키지 취약점 스캐너<br>\n<strong>플랫폼</strong>: CLI<br>\n<strong>가격</strong>: 무료</p>\n<h2 id=\"2-주요-보안-스캔-도구\" style=\"position:relative;\"><a href=\"#2-%EC%A3%BC%EC%9A%94-%EB%B3%B4%EC%95%88-%EC%8A%A4%EC%BA%94-%EB%8F%84%EA%B5%AC\" aria-label=\"2 주요 보안 스캔 도구 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>2. 주요 보안 스캔 도구</h2>\n<h3 id=\"owasp-zap-1\" style=\"position:relative;\"><a href=\"#owasp-zap-1\" aria-label=\"owasp zap 1 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>OWASP ZAP</h3>\n<p><strong>URL</strong>: <a href=\"https://www.zaproxy.org/\">https://www.zaproxy.org/</a></p>\n<p><strong>주요 기능</strong></p>\n<ul>\n<li>자동 보안 스캔</li>\n<li>수동 보안 테스트</li>\n<li>API 보안 테스트</li>\n<li>CI/CD 통합</li>\n</ul>\n<p><strong>설치 및 사용</strong></p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre class=\"language-bash\"><code class=\"language-bash\"><span class=\"token comment\"># Docker로 실행</span>\n<span class=\"token function\">docker</span> run <span class=\"token parameter variable\">-t</span> owasp/zap2docker-stable zap-baseline.py <span class=\"token parameter variable\">-t</span> https://example.com\n\n<span class=\"token comment\"># 데스크톱 애플리케이션</span>\n<span class=\"token comment\"># https://www.zaproxy.org/download/ 에서 다운로드</span></code></pre></div>\n<p><strong>스캔 유형</strong></p>\n<ul>\n<li>Quick Start: 빠른 기본 스캔</li>\n<li>Full Scan: 전체 스캔 (시간 소요)</li>\n<li>API Scan: API 엔드포인트 스캔</li>\n</ul>\n<p><strong>검출 항목</strong></p>\n<ul>\n<li>SQL 인젝션</li>\n<li>XSS (Cross-Site Scripting)</li>\n<li>CSRF (Cross-Site Request Forgery)</li>\n<li>인증/인가 취약점</li>\n<li>보안 헤더 누락</li>\n</ul>\n<h3 id=\"snyk-1\" style=\"position:relative;\"><a href=\"#snyk-1\" aria-label=\"snyk 1 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Snyk</h3>\n<p><strong>URL</strong>: <a href=\"https://snyk.io/\">https://snyk.io/</a></p>\n<p><strong>주요 기능</strong></p>\n<ul>\n<li>의존성 취약점 스캔</li>\n<li>라이선스 검사</li>\n<li>컨테이너 이미지 스캔</li>\n<li>코드 스캔 (SAST)</li>\n</ul>\n<p><strong>설치 및 사용</strong></p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre class=\"language-bash\"><code class=\"language-bash\"><span class=\"token comment\"># 설치</span>\n<span class=\"token function\">npm</span> <span class=\"token function\">install</span> <span class=\"token parameter variable\">-g</span> snyk\n\n<span class=\"token comment\"># 인증</span>\nsnyk auth\n\n<span class=\"token comment\"># 프로젝트 테스트</span>\nsnyk <span class=\"token builtin class-name\">test</span>\n\n<span class=\"token comment\"># 모니터링 설정</span>\nsnyk monitor</code></pre></div>\n<p><strong>지원 플랫폼</strong></p>\n<ul>\n<li>npm, yarn, pip, Maven, Gradle</li>\n<li>Docker 이미지</li>\n<li>Kubernetes</li>\n<li>Terraform</li>\n</ul>\n<h3 id=\"npm-audit-1\" style=\"position:relative;\"><a href=\"#npm-audit-1\" aria-label=\"npm audit 1 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>npm audit</h3>\n<p><strong>사용법</strong></p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre class=\"language-bash\"><code class=\"language-bash\"><span class=\"token comment\"># 취약점 확인</span>\n<span class=\"token function\">npm</span> audit\n\n<span class=\"token comment\"># 자동 수정 (가능한 경우)</span>\n<span class=\"token function\">npm</span> audit fix\n\n<span class=\"token comment\"># 강제 수정</span>\n<span class=\"token function\">npm</span> audit fix <span class=\"token parameter variable\">--force</span>\n\n<span class=\"token comment\"># 상세 정보</span>\n<span class=\"token function\">npm</span> audit <span class=\"token parameter variable\">--json</span></code></pre></div>\n<p><strong>출력 예시</strong></p>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">=== npm audit security report ===\n\nHigh            Regular Expression Denial of Service\nPackage         minimatch\nDependency of   webpack\nPath            webpack > enhanced-resolve > micromatch > minimatch\nMore info       https://npmjs.com/advisories/118</code></pre></div>\n<h2 id=\"3-추가-보안-도구\" style=\"position:relative;\"><a href=\"#3-%EC%B6%94%EA%B0%80-%EB%B3%B4%EC%95%88-%EB%8F%84%EA%B5%AC\" aria-label=\"3 추가 보안 도구 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>3. 추가 보안 도구</h2>\n<h3 id=\"burp-suite\" style=\"position:relative;\"><a href=\"#burp-suite\" aria-label=\"burp suite permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Burp Suite</h3>\n<p><strong>타입</strong>: 웹 보안 테스팅 프록시<br>\n<strong>가격</strong>: Community (무료), Professional (유료)</p>\n<p><strong>주요 기능</strong></p>\n<ul>\n<li>HTTP 요청/응답 가로채기</li>\n<li>취약점 스캔</li>\n<li>수동 보안 테스트</li>\n<li>확장 프로그램 지원</li>\n</ul>\n<h3 id=\"nessus\" style=\"position:relative;\"><a href=\"#nessus\" aria-label=\"nessus permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Nessus</h3>\n<p><strong>타입</strong>: 취약점 스캐너<br>\n<strong>가격</strong>: 유료 (무료 플랜 제한적)</p>\n<p><strong>주요 기능</strong></p>\n<ul>\n<li>네트워크 스캔</li>\n<li>웹 애플리케이션 스캔</li>\n<li>컴플라이언스 검사</li>\n</ul>\n<h3 id=\"owasp-dependency-check\" style=\"position:relative;\"><a href=\"#owasp-dependency-check\" aria-label=\"owasp dependency check permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>OWASP Dependency-Check</h3>\n<p><strong>타입</strong>: 의존성 취약점 스캐너<br>\n<strong>가격</strong>: 무료</p>\n<p><strong>사용법</strong></p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre class=\"language-bash\"><code class=\"language-bash\"><span class=\"token comment\"># Maven 프로젝트</span>\nmvn org.owasp:dependency-check-maven:check\n\n<span class=\"token comment\"># Gradle 프로젝트</span>\n./gradlew dependencyCheckAnalyze</code></pre></div>\n<h2 id=\"4-보안-체크리스트\" style=\"position:relative;\"><a href=\"#4-%EB%B3%B4%EC%95%88-%EC%B2%B4%ED%81%AC%EB%A6%AC%EC%8A%A4%ED%8A%B8\" aria-label=\"4 보안 체크리스트 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>4. 보안 체크리스트</h2>\n<h3 id=\"owasp-top-10-2021\" style=\"position:relative;\"><a href=\"#owasp-top-10-2021\" aria-label=\"owasp top 10 2021 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>OWASP Top 10 (2021)</h3>\n<p><strong>주요 취약점</strong></p>\n<ol>\n<li class=\"task-list-item\"><input type=\"checkbox\" disabled> Broken Access Control</li>\n<li class=\"task-list-item\"><input type=\"checkbox\" disabled> Cryptographic Failures</li>\n<li class=\"task-list-item\"><input type=\"checkbox\" disabled> Injection (SQL, XSS 등)</li>\n<li class=\"task-list-item\"><input type=\"checkbox\" disabled> Insecure Design</li>\n<li class=\"task-list-item\"><input type=\"checkbox\" disabled> Security Misconfiguration</li>\n<li class=\"task-list-item\"><input type=\"checkbox\" disabled> Vulnerable Components</li>\n<li class=\"task-list-item\"><input type=\"checkbox\" disabled> Authentication Failures</li>\n<li class=\"task-list-item\"><input type=\"checkbox\" disabled> Software and Data Integrity Failures</li>\n<li class=\"task-list-item\"><input type=\"checkbox\" disabled> Security Logging Failures</li>\n<li class=\"task-list-item\"><input type=\"checkbox\" disabled> Server-Side Request Forgery</li>\n</ol>\n<h3 id=\"입력-검증\" style=\"position:relative;\"><a href=\"#%EC%9E%85%EB%A0%A5-%EA%B2%80%EC%A6%9D\" aria-label=\"입력 검증 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>입력 검증</h3>\n<ul>\n<li class=\"task-list-item\"><input type=\"checkbox\" disabled> 모든 사용자 입력 검증</li>\n<li class=\"task-list-item\"><input type=\"checkbox\" disabled> SQL 인젝션 방지 (Prepared Statements)</li>\n<li class=\"task-list-item\"><input type=\"checkbox\" disabled> XSS 방지 (입력 이스케이프, CSP)</li>\n<li class=\"task-list-item\"><input type=\"checkbox\" disabled> 파일 업로드 검증</li>\n<li class=\"task-list-item\"><input type=\"checkbox\" disabled> 경로 탐색 공격 방지</li>\n</ul>\n<p><strong>예시: SQL 인젝션 방지</strong></p>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre class=\"language-javascript\"><code class=\"language-javascript\"><span class=\"token comment\">// 나쁜 예시</span>\n<span class=\"token keyword\">const</span> query <span class=\"token operator\">=</span> <span class=\"token template-string\"><span class=\"token template-punctuation string\">`</span><span class=\"token string\">SELECT * FROM users WHERE id = </span><span class=\"token interpolation\"><span class=\"token interpolation-punctuation punctuation\">${</span>userId<span class=\"token interpolation-punctuation punctuation\">}</span></span><span class=\"token template-punctuation string\">`</span></span><span class=\"token punctuation\">;</span>\n\n<span class=\"token comment\">// 좋은 예시</span>\n<span class=\"token keyword\">const</span> query <span class=\"token operator\">=</span> <span class=\"token string\">'SELECT * FROM users WHERE id = ?'</span><span class=\"token punctuation\">;</span>\ndb<span class=\"token punctuation\">.</span><span class=\"token function\">query</span><span class=\"token punctuation\">(</span>query<span class=\"token punctuation\">,</span> <span class=\"token punctuation\">[</span>userId<span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></code></pre></div>\n<h3 id=\"인증-및-세션-관리\" style=\"position:relative;\"><a href=\"#%EC%9D%B8%EC%A6%9D-%EB%B0%8F-%EC%84%B8%EC%85%98-%EA%B4%80%EB%A6%AC\" aria-label=\"인증 및 세션 관리 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>인증 및 세션 관리</h3>\n<ul>\n<li class=\"task-list-item\"><input type=\"checkbox\" disabled> 강력한 비밀번호 정책</li>\n<li class=\"task-list-item\"><input type=\"checkbox\" disabled> 비밀번호 해싱 (bcrypt, argon2)</li>\n<li class=\"task-list-item\"><input type=\"checkbox\" disabled> 세션 토큰 안전한 생성 및 관리</li>\n<li class=\"task-list-item\"><input type=\"checkbox\" disabled> 세션 타임아웃 설정</li>\n<li class=\"task-list-item\"><input type=\"checkbox\" disabled> 로그아웃 기능 구현</li>\n</ul>\n<h3 id=\"보안-헤더\" style=\"position:relative;\"><a href=\"#%EB%B3%B4%EC%95%88-%ED%97%A4%EB%8D%94\" aria-label=\"보안 헤더 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>보안 헤더</h3>\n<ul>\n<li class=\"task-list-item\"><input type=\"checkbox\" disabled> Content-Security-Policy (CSP)</li>\n<li class=\"task-list-item\"><input type=\"checkbox\" disabled> X-Frame-Options</li>\n<li class=\"task-list-item\"><input type=\"checkbox\" disabled> X-Content-Type-Options</li>\n<li class=\"task-list-item\"><input type=\"checkbox\" disabled> Strict-Transport-Security (HSTS)</li>\n<li class=\"task-list-item\"><input type=\"checkbox\" disabled> Referrer-Policy</li>\n</ul>\n<p><strong>예시: Express.js 보안 헤더</strong></p>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre class=\"language-javascript\"><code class=\"language-javascript\"><span class=\"token keyword\">const</span> helmet <span class=\"token operator\">=</span> <span class=\"token function\">require</span><span class=\"token punctuation\">(</span><span class=\"token string\">'helmet'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\napp<span class=\"token punctuation\">.</span><span class=\"token function\">use</span><span class=\"token punctuation\">(</span><span class=\"token function\">helmet</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></code></pre></div>\n<h3 id=\"의존성-관리\" style=\"position:relative;\"><a href=\"#%EC%9D%98%EC%A1%B4%EC%84%B1-%EA%B4%80%EB%A6%AC\" aria-label=\"의존성 관리 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>의존성 관리</h3>\n<ul>\n<li class=\"task-list-item\"><input type=\"checkbox\" disabled> 정기적인 의존성 업데이트</li>\n<li class=\"task-list-item\"><input type=\"checkbox\" disabled> 취약점 스캔 (npm audit, Snyk)</li>\n<li class=\"task-list-item\"><input type=\"checkbox\" disabled> 불필요한 의존성 제거</li>\n<li class=\"task-list-item\"><input type=\"checkbox\" disabled> 신뢰할 수 있는 소스에서만 설치</li>\n</ul>\n<h2 id=\"5-실무-활용-가이드\" style=\"position:relative;\"><a href=\"#5-%EC%8B%A4%EB%AC%B4-%ED%99%9C%EC%9A%A9-%EA%B0%80%EC%9D%B4%EB%93%9C\" aria-label=\"5 실무 활용 가이드 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>5. 실무 활용 가이드</h2>\n<h3 id=\"개발-단계별-보안-점검\" style=\"position:relative;\"><a href=\"#%EA%B0%9C%EB%B0%9C-%EB%8B%A8%EA%B3%84%EB%B3%84-%EB%B3%B4%EC%95%88-%EC%A0%90%EA%B2%80\" aria-label=\"개발 단계별 보안 점검 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>개발 단계별 보안 점검</h3>\n<p><strong>1. 개발 중</strong></p>\n<ul>\n<li>정적 분석 도구 (ESLint 보안 플러그인)</li>\n<li>코드 리뷰 시 보안 체크리스트</li>\n<li>로컬에서 npm audit 실행</li>\n</ul>\n<p><strong>2. 테스트 단계</strong></p>\n<ul>\n<li>OWASP ZAP 자동 스캔</li>\n<li>Snyk 의존성 스캔</li>\n<li>수동 보안 테스트</li>\n</ul>\n<p><strong>3. 배포 전</strong></p>\n<ul>\n<li>전체 보안 스캔</li>\n<li>취약점 수정 확인</li>\n<li>보안 헤더 검증</li>\n</ul>\n<p><strong>4. 배포 후</strong></p>\n<ul>\n<li>정기적인 모니터링</li>\n<li>취약점 알림 설정</li>\n<li>보안 로그 모니터링</li>\n</ul>\n<h3 id=\"cicd-통합\" style=\"position:relative;\"><a href=\"#cicd-%ED%86%B5%ED%95%A9\" aria-label=\"cicd 통합 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>CI/CD 통합</h3>\n<p><strong>GitHub Actions 예시</strong></p>\n<div class=\"gatsby-highlight\" data-language=\"yaml\"><pre class=\"language-yaml\"><code class=\"language-yaml\"><span class=\"token key atrule\">name</span><span class=\"token punctuation\">:</span> Security Scan\n\n<span class=\"token key atrule\">on</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">[</span>push<span class=\"token punctuation\">,</span> pull_request<span class=\"token punctuation\">]</span>\n\n<span class=\"token key atrule\">jobs</span><span class=\"token punctuation\">:</span>\n  <span class=\"token key atrule\">security</span><span class=\"token punctuation\">:</span>\n    <span class=\"token key atrule\">runs-on</span><span class=\"token punctuation\">:</span> ubuntu<span class=\"token punctuation\">-</span>latest\n    <span class=\"token key atrule\">steps</span><span class=\"token punctuation\">:</span>\n      <span class=\"token punctuation\">-</span> <span class=\"token key atrule\">uses</span><span class=\"token punctuation\">:</span> actions/checkout@v3\n      \n      <span class=\"token punctuation\">-</span> <span class=\"token key atrule\">name</span><span class=\"token punctuation\">:</span> Run npm audit\n        <span class=\"token key atrule\">run</span><span class=\"token punctuation\">:</span> npm audit <span class=\"token punctuation\">-</span><span class=\"token punctuation\">-</span>audit<span class=\"token punctuation\">-</span>level=moderate\n      \n      <span class=\"token punctuation\">-</span> <span class=\"token key atrule\">name</span><span class=\"token punctuation\">:</span> Run Snyk\n        <span class=\"token key atrule\">uses</span><span class=\"token punctuation\">:</span> snyk/actions/node@master\n        <span class=\"token key atrule\">env</span><span class=\"token punctuation\">:</span>\n          <span class=\"token key atrule\">SNYK_TOKEN</span><span class=\"token punctuation\">:</span> $<span class=\"token punctuation\">{</span><span class=\"token punctuation\">{</span> secrets.SNYK_TOKEN <span class=\"token punctuation\">}</span><span class=\"token punctuation\">}</span>\n      \n      <span class=\"token punctuation\">-</span> <span class=\"token key atrule\">name</span><span class=\"token punctuation\">:</span> OWASP ZAP Scan\n        <span class=\"token key atrule\">run</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">|</span><span class=\"token scalar string\">\n          docker run -t owasp/zap2docker-stable zap-baseline.py \\\n            -t ${{ secrets.TARGET_URL }}</span></code></pre></div>\n<h2 id=\"6-보안-도구-비교\" style=\"position:relative;\"><a href=\"#6-%EB%B3%B4%EC%95%88-%EB%8F%84%EA%B5%AC-%EB%B9%84%EA%B5%90\" aria-label=\"6 보안 도구 비교 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>6. 보안 도구 비교</h2>\n<table>\n<thead>\n<tr>\n<th>도구</th>\n<th>타입</th>\n<th>가격</th>\n<th>강점</th>\n<th>약점</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>OWASP ZAP</strong></td>\n<td>웹 스캐너</td>\n<td>무료</td>\n<td>강력한 기능, 오픈소스</td>\n<td>설정 복잡</td>\n</tr>\n<tr>\n<td><strong>Snyk</strong></td>\n<td>의존성 스캔</td>\n<td>무료+유료</td>\n<td>사용 쉬움, CI/CD 통합</td>\n<td>유료 플랜 필요</td>\n</tr>\n<tr>\n<td><strong>npm audit</strong></td>\n<td>의존성 스캔</td>\n<td>무료</td>\n<td>간단, 빠름</td>\n<td>npm만 지원</td>\n</tr>\n<tr>\n<td><strong>Burp Suite</strong></td>\n<td>프록시</td>\n<td>무료+유료</td>\n<td>강력한 수동 테스트</td>\n<td>학습 곡선</td>\n</tr>\n<tr>\n<td><strong>Dependency-Check</strong></td>\n<td>의존성 스캔</td>\n<td>무료</td>\n<td>다양한 언어 지원</td>\n<td>느림</td>\n</tr>\n</tbody>\n</table>\n<h2 id=\"7-일반적인-취약점-및-대응\" style=\"position:relative;\"><a href=\"#7-%EC%9D%BC%EB%B0%98%EC%A0%81%EC%9D%B8-%EC%B7%A8%EC%95%BD%EC%A0%90-%EB%B0%8F-%EB%8C%80%EC%9D%91\" aria-label=\"7 일반적인 취약점 및 대응 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>7. 일반적인 취약점 및 대응</h2>\n<h3 id=\"sql-인젝션\" style=\"position:relative;\"><a href=\"#sql-%EC%9D%B8%EC%A0%9D%EC%85%98\" aria-label=\"sql 인젝션 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>SQL 인젝션</h3>\n<p><strong>취약한 코드</strong></p>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre class=\"language-javascript\"><code class=\"language-javascript\"><span class=\"token keyword\">const</span> query <span class=\"token operator\">=</span> <span class=\"token template-string\"><span class=\"token template-punctuation string\">`</span><span class=\"token string\">SELECT * FROM users WHERE email = '</span><span class=\"token interpolation\"><span class=\"token interpolation-punctuation punctuation\">${</span>email<span class=\"token interpolation-punctuation punctuation\">}</span></span><span class=\"token string\">'</span><span class=\"token template-punctuation string\">`</span></span><span class=\"token punctuation\">;</span></code></pre></div>\n<p><strong>안전한 코드</strong></p>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre class=\"language-javascript\"><code class=\"language-javascript\"><span class=\"token keyword\">const</span> query <span class=\"token operator\">=</span> <span class=\"token string\">'SELECT * FROM users WHERE email = ?'</span><span class=\"token punctuation\">;</span>\ndb<span class=\"token punctuation\">.</span><span class=\"token function\">query</span><span class=\"token punctuation\">(</span>query<span class=\"token punctuation\">,</span> <span class=\"token punctuation\">[</span>email<span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></code></pre></div>\n<h3 id=\"xss-cross-site-scripting\" style=\"position:relative;\"><a href=\"#xss-cross-site-scripting\" aria-label=\"xss cross site scripting permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>XSS (Cross-Site Scripting)</h3>\n<p><strong>취약한 코드</strong></p>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre class=\"language-javascript\"><code class=\"language-javascript\">document<span class=\"token punctuation\">.</span>innerHTML <span class=\"token operator\">=</span> userInput<span class=\"token punctuation\">;</span></code></pre></div>\n<p><strong>안전한 코드</strong></p>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre class=\"language-javascript\"><code class=\"language-javascript\">document<span class=\"token punctuation\">.</span>textContent <span class=\"token operator\">=</span> userInput<span class=\"token punctuation\">;</span>\n<span class=\"token comment\">// 또는</span>\n<span class=\"token keyword\">const</span> safe <span class=\"token operator\">=</span> DOMPurify<span class=\"token punctuation\">.</span><span class=\"token function\">sanitize</span><span class=\"token punctuation\">(</span>userInput<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\ndocument<span class=\"token punctuation\">.</span>innerHTML <span class=\"token operator\">=</span> safe<span class=\"token punctuation\">;</span></code></pre></div>\n<h3 id=\"csrf-cross-site-request-forgery\" style=\"position:relative;\"><a href=\"#csrf-cross-site-request-forgery\" aria-label=\"csrf cross site request forgery permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>CSRF (Cross-Site Request Forgery)</h3>\n<p><strong>대응 방법</strong></p>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre class=\"language-javascript\"><code class=\"language-javascript\"><span class=\"token comment\">// CSRF 토큰 사용</span>\n<span class=\"token keyword\">const</span> csrfToken <span class=\"token operator\">=</span> <span class=\"token function\">generateCSRFToken</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token comment\">// 요청 시 토큰 포함하여 검증</span></code></pre></div>\n<h3 id=\"인증-우회\" style=\"position:relative;\"><a href=\"#%EC%9D%B8%EC%A6%9D-%EC%9A%B0%ED%9A%8C\" aria-label=\"인증 우회 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>인증 우회</h3>\n<p><strong>체크리스트</strong></p>\n<ul>\n<li class=\"task-list-item\"><input type=\"checkbox\" disabled> 모든 보호된 엔드포인트에 인증 확인</li>\n<li class=\"task-list-item\"><input type=\"checkbox\" disabled> 권한 검사 (역할 기반 접근 제어)</li>\n<li class=\"task-list-item\"><input type=\"checkbox\" disabled> 세션 만료 처리</li>\n<li class=\"task-list-item\"><input type=\"checkbox\" disabled> 토큰 검증</li>\n</ul>\n<h2 id=\"8-보안-모니터링\" style=\"position:relative;\"><a href=\"#8-%EB%B3%B4%EC%95%88-%EB%AA%A8%EB%8B%88%ED%84%B0%EB%A7%81\" aria-label=\"8 보안 모니터링 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>8. 보안 모니터링</h2>\n<h3 id=\"로깅\" style=\"position:relative;\"><a href=\"#%EB%A1%9C%EA%B9%85\" aria-label=\"로깅 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>로깅</h3>\n<p><strong>보안 이벤트 로깅</strong></p>\n<ul>\n<li>로그인 시도 (성공/실패)</li>\n<li>권한 변경</li>\n<li>민감한 작업 수행</li>\n<li>비정상적인 접근 패턴</li>\n</ul>\n<h3 id=\"알림-설정\" style=\"position:relative;\"><a href=\"#%EC%95%8C%EB%A6%BC-%EC%84%A4%EC%A0%95\" aria-label=\"알림 설정 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>알림 설정</h3>\n<p><strong>Snyk 알림</strong></p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre class=\"language-bash\"><code class=\"language-bash\"><span class=\"token comment\"># GitHub 통합</span>\nsnyk monitor <span class=\"token parameter variable\">--org</span><span class=\"token operator\">=</span>my-org</code></pre></div>\n<p><strong>정기적인 스캔</strong></p>\n<ul>\n<li>주간 보안 스캔</li>\n<li>월간 전체 감사</li>\n<li>취약점 발견 시 즉시 알림</li>\n</ul>\n<h2 id=\"faq\" style=\"position:relative;\"><a href=\"#faq\" aria-label=\"faq permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>FAQ</h2>\n<p><strong>Q: 모든 도구를 사용해야 하나요?</strong><br>\nA: 아니요. 프로젝트 규모와 요구사항에 따라 선택한다. 소규모 프로젝트는 npm audit과 OWASP ZAP만으로도 충분하다.</p>\n<p><strong>Q: 얼마나 자주 스캔해야 하나요?</strong><br>\nA: 의존성 스캔은 CI/CD에 통합하여 매번 실행하고, 전체 보안 스캔은 주간 또는 배포 전에 실행한다.</p>\n<p><strong>Q: 무료 도구로 충분한가요?</strong><br>\nA: 대부분의 경우 무료 도구로 충분하다. OWASP ZAP, npm audit, Snyk 무료 플랜으로 기본적인 보안 점검은 가능하다.</p>\n<p><strong>Q: 자동화된 스캔만으로 충분한가요?</strong><br>\nA: 자동화된 스캔은 많은 취약점을 찾지만, 수동 테스트도 필요하다. 특히 비즈니스 로직 취약점은 수동 테스트가 중요하다.</p>\n<p><strong>Q: 보안 스캔 결과를 어떻게 해석하나요?</strong><br>\nA: 위험도(High/Medium/Low)에 따라 우선순위를 정하고, 프로젝트에 실제 영향을 주는 취약점부터 수정한다.</p>\n<p><strong>Q: 취약점이 발견되면 어떻게 하나요?</strong><br>\nA: 즉시 수정 가능한 것은 바로 수정하고, 복잡한 경우는 보안 패치를 적용하거나 대안을 찾는다. 심각한 취약점은 즉시 조치한다.</p>\n<h2 id=\"보안-점검-역량을-프로젝트에-활용\" style=\"position:relative;\"><a href=\"#%EB%B3%B4%EC%95%88-%EC%A0%90%EA%B2%80-%EC%97%AD%EB%9F%89%EC%9D%84-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8%EC%97%90-%ED%99%9C%EC%9A%A9\" aria-label=\"보안 점검 역량을 프로젝트에 활용 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>보안 점검 역량을 프로젝트에 활용</h2>\n<p>웹 보안 스캔과 취약점 점검 기술을 습득했다면, 실제 프로젝트에서 보안 감사나 보안 강화 작업을 수행해보자. <a href=\"https://bluebutton.kr/\">블루버튼</a> 같은 플랫폼에서 웹 애플리케이션 보안 강화, 보안 감사, 취약점 수정, OWASP Top 10 대응 등 보안 관련 프로젝트를 찾을 수 있다. 특히 금융, 의료, 전자상거래 등 보안이 중요한 프로젝트에서 이 글에서 배운 도구와 방법론을 바로 적용할 수 있다.</p>","tableOfContents":"<ul>\n<li>\n<p><a href=\"/etc/%EC%9B%B9%EC%82%AC%EC%9D%B4%ED%8A%B8-%EB%B3%B4%EC%95%88-%EC%8A%A4%EC%BA%94-%EB%8F%84%EA%B5%AC%EC%99%80-%EC%B7%A8%EC%95%BD%EC%A0%90-%EC%A0%90%EA%B2%80-%EA%B0%80%EC%9D%B4%EB%93%9C/#1-%EB%B3%B4%EC%95%88-%EC%8A%A4%EC%BA%94-%EB%8F%84%EA%B5%AC-%EA%B0%9C%EC%9A%94\">1. 보안 스캔 도구 개요</a></p>\n<ul>\n<li><a href=\"/etc/%EC%9B%B9%EC%82%AC%EC%9D%B4%ED%8A%B8-%EB%B3%B4%EC%95%88-%EC%8A%A4%EC%BA%94-%EB%8F%84%EA%B5%AC%EC%99%80-%EC%B7%A8%EC%95%BD%EC%A0%90-%EC%A0%90%EA%B2%80-%EA%B0%80%EC%9D%B4%EB%93%9C/#owasp-zap\">OWASP ZAP</a></li>\n<li><a href=\"/etc/%EC%9B%B9%EC%82%AC%EC%9D%B4%ED%8A%B8-%EB%B3%B4%EC%95%88-%EC%8A%A4%EC%BA%94-%EB%8F%84%EA%B5%AC%EC%99%80-%EC%B7%A8%EC%95%BD%EC%A0%90-%EC%A0%90%EA%B2%80-%EA%B0%80%EC%9D%B4%EB%93%9C/#snyk\">Snyk</a></li>\n<li><a href=\"/etc/%EC%9B%B9%EC%82%AC%EC%9D%B4%ED%8A%B8-%EB%B3%B4%EC%95%88-%EC%8A%A4%EC%BA%94-%EB%8F%84%EA%B5%AC%EC%99%80-%EC%B7%A8%EC%95%BD%EC%A0%90-%EC%A0%90%EA%B2%80-%EA%B0%80%EC%9D%B4%EB%93%9C/#npm-audit\">npm audit</a></li>\n</ul>\n</li>\n<li>\n<p><a href=\"/etc/%EC%9B%B9%EC%82%AC%EC%9D%B4%ED%8A%B8-%EB%B3%B4%EC%95%88-%EC%8A%A4%EC%BA%94-%EB%8F%84%EA%B5%AC%EC%99%80-%EC%B7%A8%EC%95%BD%EC%A0%90-%EC%A0%90%EA%B2%80-%EA%B0%80%EC%9D%B4%EB%93%9C/#2-%EC%A3%BC%EC%9A%94-%EB%B3%B4%EC%95%88-%EC%8A%A4%EC%BA%94-%EB%8F%84%EA%B5%AC\">2. 주요 보안 스캔 도구</a></p>\n<ul>\n<li><a href=\"/etc/%EC%9B%B9%EC%82%AC%EC%9D%B4%ED%8A%B8-%EB%B3%B4%EC%95%88-%EC%8A%A4%EC%BA%94-%EB%8F%84%EA%B5%AC%EC%99%80-%EC%B7%A8%EC%95%BD%EC%A0%90-%EC%A0%90%EA%B2%80-%EA%B0%80%EC%9D%B4%EB%93%9C/#owasp-zap-1\">OWASP ZAP</a></li>\n<li><a href=\"/etc/%EC%9B%B9%EC%82%AC%EC%9D%B4%ED%8A%B8-%EB%B3%B4%EC%95%88-%EC%8A%A4%EC%BA%94-%EB%8F%84%EA%B5%AC%EC%99%80-%EC%B7%A8%EC%95%BD%EC%A0%90-%EC%A0%90%EA%B2%80-%EA%B0%80%EC%9D%B4%EB%93%9C/#snyk-1\">Snyk</a></li>\n<li><a href=\"/etc/%EC%9B%B9%EC%82%AC%EC%9D%B4%ED%8A%B8-%EB%B3%B4%EC%95%88-%EC%8A%A4%EC%BA%94-%EB%8F%84%EA%B5%AC%EC%99%80-%EC%B7%A8%EC%95%BD%EC%A0%90-%EC%A0%90%EA%B2%80-%EA%B0%80%EC%9D%B4%EB%93%9C/#npm-audit-1\">npm audit</a></li>\n</ul>\n</li>\n<li>\n<p><a href=\"/etc/%EC%9B%B9%EC%82%AC%EC%9D%B4%ED%8A%B8-%EB%B3%B4%EC%95%88-%EC%8A%A4%EC%BA%94-%EB%8F%84%EA%B5%AC%EC%99%80-%EC%B7%A8%EC%95%BD%EC%A0%90-%EC%A0%90%EA%B2%80-%EA%B0%80%EC%9D%B4%EB%93%9C/#3-%EC%B6%94%EA%B0%80-%EB%B3%B4%EC%95%88-%EB%8F%84%EA%B5%AC\">3. 추가 보안 도구</a></p>\n<ul>\n<li><a href=\"/etc/%EC%9B%B9%EC%82%AC%EC%9D%B4%ED%8A%B8-%EB%B3%B4%EC%95%88-%EC%8A%A4%EC%BA%94-%EB%8F%84%EA%B5%AC%EC%99%80-%EC%B7%A8%EC%95%BD%EC%A0%90-%EC%A0%90%EA%B2%80-%EA%B0%80%EC%9D%B4%EB%93%9C/#burp-suite\">Burp Suite</a></li>\n<li><a href=\"/etc/%EC%9B%B9%EC%82%AC%EC%9D%B4%ED%8A%B8-%EB%B3%B4%EC%95%88-%EC%8A%A4%EC%BA%94-%EB%8F%84%EA%B5%AC%EC%99%80-%EC%B7%A8%EC%95%BD%EC%A0%90-%EC%A0%90%EA%B2%80-%EA%B0%80%EC%9D%B4%EB%93%9C/#nessus\">Nessus</a></li>\n<li><a href=\"/etc/%EC%9B%B9%EC%82%AC%EC%9D%B4%ED%8A%B8-%EB%B3%B4%EC%95%88-%EC%8A%A4%EC%BA%94-%EB%8F%84%EA%B5%AC%EC%99%80-%EC%B7%A8%EC%95%BD%EC%A0%90-%EC%A0%90%EA%B2%80-%EA%B0%80%EC%9D%B4%EB%93%9C/#owasp-dependency-check\">OWASP Dependency-Check</a></li>\n</ul>\n</li>\n<li>\n<p><a href=\"/etc/%EC%9B%B9%EC%82%AC%EC%9D%B4%ED%8A%B8-%EB%B3%B4%EC%95%88-%EC%8A%A4%EC%BA%94-%EB%8F%84%EA%B5%AC%EC%99%80-%EC%B7%A8%EC%95%BD%EC%A0%90-%EC%A0%90%EA%B2%80-%EA%B0%80%EC%9D%B4%EB%93%9C/#4-%EB%B3%B4%EC%95%88-%EC%B2%B4%ED%81%AC%EB%A6%AC%EC%8A%A4%ED%8A%B8\">4. 보안 체크리스트</a></p>\n<ul>\n<li><a href=\"/etc/%EC%9B%B9%EC%82%AC%EC%9D%B4%ED%8A%B8-%EB%B3%B4%EC%95%88-%EC%8A%A4%EC%BA%94-%EB%8F%84%EA%B5%AC%EC%99%80-%EC%B7%A8%EC%95%BD%EC%A0%90-%EC%A0%90%EA%B2%80-%EA%B0%80%EC%9D%B4%EB%93%9C/#owasp-top-10-2021\">OWASP Top 10 (2021)</a></li>\n<li><a href=\"/etc/%EC%9B%B9%EC%82%AC%EC%9D%B4%ED%8A%B8-%EB%B3%B4%EC%95%88-%EC%8A%A4%EC%BA%94-%EB%8F%84%EA%B5%AC%EC%99%80-%EC%B7%A8%EC%95%BD%EC%A0%90-%EC%A0%90%EA%B2%80-%EA%B0%80%EC%9D%B4%EB%93%9C/#%EC%9E%85%EB%A0%A5-%EA%B2%80%EC%A6%9D\">입력 검증</a></li>\n<li><a href=\"/etc/%EC%9B%B9%EC%82%AC%EC%9D%B4%ED%8A%B8-%EB%B3%B4%EC%95%88-%EC%8A%A4%EC%BA%94-%EB%8F%84%EA%B5%AC%EC%99%80-%EC%B7%A8%EC%95%BD%EC%A0%90-%EC%A0%90%EA%B2%80-%EA%B0%80%EC%9D%B4%EB%93%9C/#%EC%9D%B8%EC%A6%9D-%EB%B0%8F-%EC%84%B8%EC%85%98-%EA%B4%80%EB%A6%AC\">인증 및 세션 관리</a></li>\n<li><a href=\"/etc/%EC%9B%B9%EC%82%AC%EC%9D%B4%ED%8A%B8-%EB%B3%B4%EC%95%88-%EC%8A%A4%EC%BA%94-%EB%8F%84%EA%B5%AC%EC%99%80-%EC%B7%A8%EC%95%BD%EC%A0%90-%EC%A0%90%EA%B2%80-%EA%B0%80%EC%9D%B4%EB%93%9C/#%EB%B3%B4%EC%95%88-%ED%97%A4%EB%8D%94\">보안 헤더</a></li>\n<li><a href=\"/etc/%EC%9B%B9%EC%82%AC%EC%9D%B4%ED%8A%B8-%EB%B3%B4%EC%95%88-%EC%8A%A4%EC%BA%94-%EB%8F%84%EA%B5%AC%EC%99%80-%EC%B7%A8%EC%95%BD%EC%A0%90-%EC%A0%90%EA%B2%80-%EA%B0%80%EC%9D%B4%EB%93%9C/#%EC%9D%98%EC%A1%B4%EC%84%B1-%EA%B4%80%EB%A6%AC\">의존성 관리</a></li>\n</ul>\n</li>\n<li>\n<p><a href=\"/etc/%EC%9B%B9%EC%82%AC%EC%9D%B4%ED%8A%B8-%EB%B3%B4%EC%95%88-%EC%8A%A4%EC%BA%94-%EB%8F%84%EA%B5%AC%EC%99%80-%EC%B7%A8%EC%95%BD%EC%A0%90-%EC%A0%90%EA%B2%80-%EA%B0%80%EC%9D%B4%EB%93%9C/#5-%EC%8B%A4%EB%AC%B4-%ED%99%9C%EC%9A%A9-%EA%B0%80%EC%9D%B4%EB%93%9C\">5. 실무 활용 가이드</a></p>\n<ul>\n<li><a href=\"/etc/%EC%9B%B9%EC%82%AC%EC%9D%B4%ED%8A%B8-%EB%B3%B4%EC%95%88-%EC%8A%A4%EC%BA%94-%EB%8F%84%EA%B5%AC%EC%99%80-%EC%B7%A8%EC%95%BD%EC%A0%90-%EC%A0%90%EA%B2%80-%EA%B0%80%EC%9D%B4%EB%93%9C/#%EA%B0%9C%EB%B0%9C-%EB%8B%A8%EA%B3%84%EB%B3%84-%EB%B3%B4%EC%95%88-%EC%A0%90%EA%B2%80\">개발 단계별 보안 점검</a></li>\n<li><a href=\"/etc/%EC%9B%B9%EC%82%AC%EC%9D%B4%ED%8A%B8-%EB%B3%B4%EC%95%88-%EC%8A%A4%EC%BA%94-%EB%8F%84%EA%B5%AC%EC%99%80-%EC%B7%A8%EC%95%BD%EC%A0%90-%EC%A0%90%EA%B2%80-%EA%B0%80%EC%9D%B4%EB%93%9C/#cicd-%ED%86%B5%ED%95%A9\">CI/CD 통합</a></li>\n</ul>\n</li>\n<li><a href=\"/etc/%EC%9B%B9%EC%82%AC%EC%9D%B4%ED%8A%B8-%EB%B3%B4%EC%95%88-%EC%8A%A4%EC%BA%94-%EB%8F%84%EA%B5%AC%EC%99%80-%EC%B7%A8%EC%95%BD%EC%A0%90-%EC%A0%90%EA%B2%80-%EA%B0%80%EC%9D%B4%EB%93%9C/#6-%EB%B3%B4%EC%95%88-%EB%8F%84%EA%B5%AC-%EB%B9%84%EA%B5%90\">6. 보안 도구 비교</a></li>\n<li>\n<p><a href=\"/etc/%EC%9B%B9%EC%82%AC%EC%9D%B4%ED%8A%B8-%EB%B3%B4%EC%95%88-%EC%8A%A4%EC%BA%94-%EB%8F%84%EA%B5%AC%EC%99%80-%EC%B7%A8%EC%95%BD%EC%A0%90-%EC%A0%90%EA%B2%80-%EA%B0%80%EC%9D%B4%EB%93%9C/#7-%EC%9D%BC%EB%B0%98%EC%A0%81%EC%9D%B8-%EC%B7%A8%EC%95%BD%EC%A0%90-%EB%B0%8F-%EB%8C%80%EC%9D%91\">7. 일반적인 취약점 및 대응</a></p>\n<ul>\n<li><a href=\"/etc/%EC%9B%B9%EC%82%AC%EC%9D%B4%ED%8A%B8-%EB%B3%B4%EC%95%88-%EC%8A%A4%EC%BA%94-%EB%8F%84%EA%B5%AC%EC%99%80-%EC%B7%A8%EC%95%BD%EC%A0%90-%EC%A0%90%EA%B2%80-%EA%B0%80%EC%9D%B4%EB%93%9C/#sql-%EC%9D%B8%EC%A0%9D%EC%85%98\">SQL 인젝션</a></li>\n<li><a href=\"/etc/%EC%9B%B9%EC%82%AC%EC%9D%B4%ED%8A%B8-%EB%B3%B4%EC%95%88-%EC%8A%A4%EC%BA%94-%EB%8F%84%EA%B5%AC%EC%99%80-%EC%B7%A8%EC%95%BD%EC%A0%90-%EC%A0%90%EA%B2%80-%EA%B0%80%EC%9D%B4%EB%93%9C/#xss-cross-site-scripting\">XSS (Cross-Site Scripting)</a></li>\n<li><a href=\"/etc/%EC%9B%B9%EC%82%AC%EC%9D%B4%ED%8A%B8-%EB%B3%B4%EC%95%88-%EC%8A%A4%EC%BA%94-%EB%8F%84%EA%B5%AC%EC%99%80-%EC%B7%A8%EC%95%BD%EC%A0%90-%EC%A0%90%EA%B2%80-%EA%B0%80%EC%9D%B4%EB%93%9C/#csrf-cross-site-request-forgery\">CSRF (Cross-Site Request Forgery)</a></li>\n<li><a href=\"/etc/%EC%9B%B9%EC%82%AC%EC%9D%B4%ED%8A%B8-%EB%B3%B4%EC%95%88-%EC%8A%A4%EC%BA%94-%EB%8F%84%EA%B5%AC%EC%99%80-%EC%B7%A8%EC%95%BD%EC%A0%90-%EC%A0%90%EA%B2%80-%EA%B0%80%EC%9D%B4%EB%93%9C/#%EC%9D%B8%EC%A6%9D-%EC%9A%B0%ED%9A%8C\">인증 우회</a></li>\n</ul>\n</li>\n<li>\n<p><a href=\"/etc/%EC%9B%B9%EC%82%AC%EC%9D%B4%ED%8A%B8-%EB%B3%B4%EC%95%88-%EC%8A%A4%EC%BA%94-%EB%8F%84%EA%B5%AC%EC%99%80-%EC%B7%A8%EC%95%BD%EC%A0%90-%EC%A0%90%EA%B2%80-%EA%B0%80%EC%9D%B4%EB%93%9C/#8-%EB%B3%B4%EC%95%88-%EB%AA%A8%EB%8B%88%ED%84%B0%EB%A7%81\">8. 보안 모니터링</a></p>\n<ul>\n<li><a href=\"/etc/%EC%9B%B9%EC%82%AC%EC%9D%B4%ED%8A%B8-%EB%B3%B4%EC%95%88-%EC%8A%A4%EC%BA%94-%EB%8F%84%EA%B5%AC%EC%99%80-%EC%B7%A8%EC%95%BD%EC%A0%90-%EC%A0%90%EA%B2%80-%EA%B0%80%EC%9D%B4%EB%93%9C/#%EB%A1%9C%EA%B9%85\">로깅</a></li>\n<li><a href=\"/etc/%EC%9B%B9%EC%82%AC%EC%9D%B4%ED%8A%B8-%EB%B3%B4%EC%95%88-%EC%8A%A4%EC%BA%94-%EB%8F%84%EA%B5%AC%EC%99%80-%EC%B7%A8%EC%95%BD%EC%A0%90-%EC%A0%90%EA%B2%80-%EA%B0%80%EC%9D%B4%EB%93%9C/#%EC%95%8C%EB%A6%BC-%EC%84%A4%EC%A0%95\">알림 설정</a></li>\n</ul>\n</li>\n<li><a href=\"/etc/%EC%9B%B9%EC%82%AC%EC%9D%B4%ED%8A%B8-%EB%B3%B4%EC%95%88-%EC%8A%A4%EC%BA%94-%EB%8F%84%EA%B5%AC%EC%99%80-%EC%B7%A8%EC%95%BD%EC%A0%90-%EC%A0%90%EA%B2%80-%EA%B0%80%EC%9D%B4%EB%93%9C/#faq\">FAQ</a></li>\n<li><a href=\"/etc/%EC%9B%B9%EC%82%AC%EC%9D%B4%ED%8A%B8-%EB%B3%B4%EC%95%88-%EC%8A%A4%EC%BA%94-%EB%8F%84%EA%B5%AC%EC%99%80-%EC%B7%A8%EC%95%BD%EC%A0%90-%EC%A0%90%EA%B2%80-%EA%B0%80%EC%9D%B4%EB%93%9C/#%EB%B3%B4%EC%95%88-%EC%A0%90%EA%B2%80-%EC%97%AD%EB%9F%89%EC%9D%84-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8%EC%97%90-%ED%99%9C%EC%9A%A9\">보안 점검 역량을 프로젝트에 활용</a></li>\n</ul>","wordCount":{"words":693},"fields":{"slug":"/etc/웹사이트-보안-스캔-도구와-취약점-점검-가이드/","image":null,"faq":[{"question":"모든 도구를 사용해야 하나요?","answer":"아니요. 프로젝트 규모와 요구사항에 따라 선택한다. 소규모 프로젝트는 npm audit과 OWASP ZAP만으로도 충분하다."},{"question":"얼마나 자주 스캔해야 하나요?","answer":"의존성 스캔은 CI/CD에 통합하여 매번 실행하고, 전체 보안 스캔은 주간 또는 배포 전에 실행한다."},{"question":"무료 도구로 충분한가요?","answer":"대부분의 경우 무료 도구로 충분하다. OWASP ZAP, npm audit, Snyk 무료 플랜으로 기본적인 보안 점검은 가능하다."},{"question":"자동화된 스캔만으로 충분한가요?","answer":"자동화된 스캔은 많은 취약점을 찾지만, 수동 테스트도 필요하다. 특히 비즈니스 로직 취약점은 수동 테스트가 중요하다."},{"question":"보안 스캔 결과를 어떻게 해석하나요?","answer":"위험도(High/Medium/Low)에 따라 우선순위를 정하고, 프로젝트에 실제 영향을 주는 취약점부터 수정한다."},{"question":"취약점이 발견되면 어떻게 하나요?","answer":"즉시 수정 가능한 것은 바로 수정하고, 복잡한 경우는 보안 패치를 적용하거나 대안을 찾는다. 심각한 취약점은 즉시 조치한다."}]},"frontmatter":{"title":"웹사이트 보안 스캔 도구와 취약점 점검 가이드 - 실무에서 바로 쓰는 보안 도구들","date":"2025년 12월 23일","dateISO":"2025-12-23T06:35:00.000Z","updatedISO":null,"category":"etc","description":"웹사이트 보안을 점검하고 취약점을 찾는 필수 도구들을 정리했다. OWASP ZAP, Snyk, npm audit 등 무료 도구부터 상용 도구까지 실무에서 바로 사용할 수 있는 보안 스캔 도구 가이드를 제공한다.","tags":["보안","웹 보안","취약점 스캔","OWASP","보안 도구","취약점 점검","보안 테스트"]}}},"pageContext":{"slug":"/etc/웹사이트-보안-스캔-도구와-취약점-점검-가이드/","previous":{"fields":{"slug":"/etc/개발-환경-설정-자동화-도구-모음/"},"frontmatter":{"title":"개발 환경 설정 자동화 도구 모음 - Docker, Vagrant, Dev Containers 완전 가이드","tags":["Docker","Vagrant","Dev Containers","개발 환경","자동화","DevOps","컨테이너"]}},"next":{"fields":{"slug":"/javascript/프론트엔드-프레임워크-선택-가이드/"},"frontmatter":{"title":"프론트엔드 프레임워크 선택 가이드 - React vs Vue vs Svelte 실전 비교","tags":["React","Vue","Svelte","프론트엔드","프레임워크","JavaScript","프레임워크 비교"]}}}},"staticQueryHashes":["213619243","3262363727"]}