보안 규정 사이트를 만들 때 지켜야 할 것 을 모았습니다. 세계에서 가장 널리 쓰는 보안 안내서(OWASP) 137종 가운데 우리 종류의 사이트에 해당하는 40가지를 골라 우리말로 풀었습니다. 카드를 누르면 지킬 것이 열립니다.
고른 규정40가지 OWASP 안내서 137종 가운데
필수22가지 로그인과 DB 가 있는 사이트라면 처음부터 지킨다
처음이라면 이것만 알면 됩니다한꺼번에 다 지키려 하지 않습니다. «필수» 부터 봅니다. «해당할 때» 는 결제·파일 올리기처럼 그 기능을 만들 때 읽습니다.AI 에게 그대로 시킬 수 있습니다. 카드를 열어 「AI 에게 시킬 글 복사」 를 누르고, 만들어 달라는 말 뒤에 붙여 넣습니다.이 화면은 «지킬 것» 입니다. 우리 사이트가 전부 지키고 있다는 점검 결과가 아닙니다. 점검은 따로 해야 합니다.필수 22 권장 7 해당할 때 11
전체 40 로그인·계정 6 권한 3 입력·출력 6 브라우저 방어 4 비밀값·암호화 4 서버·API 7 결제·연동 2 부품·배포 4 AI 4 로그인·계정6개 누가 들어오는지 확인하는 자리. 여기가 뚫리면 나머지 방어가 소용없다.
로그인 필수 비밀번호 길이, 틀렸을 때 문구, 잠금까지 — 로그인 화면이 지켜야 할 기본. 지킬 것 6가지Authentication 자세히 → 로그인 유지(세션) 필수 로그인한 뒤 «이 사람이 그 사람» 임을 기억하는 표(세션)를 훔치지 못하게 한다. 지킬 것 6가지Session Management 자세히 → 비밀번호 보관 필수 비밀번호는 되돌릴 수 없게 갈아서 보관한다. DB 가 새도 원래 비밀번호는 나오지 않게. 지킬 것 6가지Password Storage 자세히 → 비밀번호 찾기 필수 비밀번호 재설정은 로그인을 건너뛰는 뒷문이 되기 쉽다. 지킬 것 5가지Forgot Password 자세히 → 2단계 인증 권장 비밀번호 말고 한 가지를 더 확인한다. 비밀번호가 새도 계정은 남는다. 지킬 것 5가지Multifactor Authentication 자세히 → 유출 비밀번호 대입 막기 권장 다른 사이트에서 샌 아이디·비밀번호 묶음을 우리 로그인에 기계로 넣어 보는 공격. 지킬 것 5가지Credential Stuffing Prevention 자세히 → 권한3개 들어온 사람이 «자기 것만» 보고 고치게 하는 자리.
권한 확인 필수 허락된 사람만, 허락된 것만. 화면이 아니라 서버가 매번 확인한다. 지킬 것 6가지Authorization 자세히 → 남의 번호 넣어 보기 막기 필수 주소 끝의 번호를 1 올렸더니 남의 주문서가 열린다 — 이 사고를 막는다. 지킬 것 4가지Insecure Direct Object Reference Prevention 자세히 → 숨은 항목 끼워넣기 막기 필수 요청에 «관리자=예» 를 슬쩍 끼워 넣어도 통하지 않게 한다. 지킬 것 4가지Mass Assignment 자세히 → 입력·출력6개 바깥에서 들어온 글자를 그대로 믿지 않고, 화면에 그대로 내보내지 않는 자리.
입력 검사 필수 받을 모양을 먼저 정하고, 거기 안 맞으면 받지 않는다. 지킬 것 6가지Input Validation 자세히 → DB 명령 끼워넣기 막기 필수 입력칸에 DB 명령을 적어 넣어 자료를 빼 가는 공격을 막는다. 지킬 것 4가지SQL Injection Prevention 자세히 → 화면에 스크립트 끼워넣기 막기 필수 남이 쓴 글에 숨은 스크립트가 다른 방문자의 브라우저에서 돌지 않게 한다. 지킬 것 5가지Cross Site Scripting Prevention 자세히 → 서버 명령 끼워넣기 막기 해당할 때 입력값이 서버의 명령 줄에 섞여 들어가 엉뚱한 명령이 실행되는 것을 막는다. 지킬 것 4가지OS Command Injection Defense 자세히 → 파일 올리기 해당할 때 올라온 파일이 그림인 척하는 프로그램이 아닌지 확인하고, 안전한 곳에 둔다. 지킬 것 7가지File Upload 자세히 → 아무 데로나 넘겨주기 막기 권장 우리 주소로 시작하는 링크가 가짜 사이트로 넘어가게 두지 않는다. 지킬 것 4가지Unvalidated Redirects and Forwards 자세히 → 브라우저 방어4개 방문자의 브라우저에게 «이것만 허락하라» 고 알려 주는 설정.
요청 위조 막기 필수 다른 사이트가 로그인된 방문자의 브라우저를 빌려 우리에게 «주문·삭제» 를 보내지 못하게 한다. 지킬 것 5가지Cross-Site Request Forgery Prevention 자세히 → 보안 응답 머리말 필수 서버가 응답에 몇 줄을 붙여 브라우저에게 «이렇게만 다뤄라» 고 알린다. 지킬 것 7가지HTTP Security Response Headers 자세히 → 콘텐츠 보안 정책(CSP) 권장 이 화면에서 돌아도 되는 스크립트의 출처를 정해 둔다. 지킬 것 5가지Content Security Policy 자세히 → 남의 스크립트 넣기 해당할 때 광고·분석 스크립트는 우리 화면 안에서 우리와 같은 힘을 가진다. 지킬 것 4가지Third Party JavaScript Management 자세히 → 비밀값·암호화4개 열쇠와 자료를 남이 못 읽게 보관하고 옮기는 자리.
열쇠(비밀값) 관리 필수 API 키·비밀번호·토큰을 어디에 두고, 누가 보고, 언제 바꾸는가. 지킬 것 6가지Secrets Management 자세히 → 자료 암호화 보관 해당할 때 새면 안 되는 자료는 암호화해서 넣고, 열쇠는 다른 곳에 둔다. 지킬 것 6가지Cryptographic Storage 자세히 → 암호화 연결(HTTPS) 필수 방문자와 서버 사이를 오가는 것을 중간에서 못 읽고 못 바꾸게 한다. 지킬 것 5가지Transport Layer Security 자세히 → 데이터베이스 지키기 필수 DB 는 인터넷에 내놓지 않고, 앱에는 필요한 권한만 준다. 지킬 것 6가지Database Security 자세히 → 서버·API7개 서버가 요청을 받고, 바깥을 부르고, 기록을 남기는 자리.
API 입구 필수 화면 뒤의 입구(API)는 화면 없이도 누구나 직접 두드릴 수 있다. 지킬 것 6가지REST Security 자세히 → 서버가 바깥 주소를 부를 때 해당할 때 서버에게 «이 주소 좀 열어 봐» 를 시켜 안쪽 망을 들여다보는 공격을 막는다. 지킬 것 4가지Server-Side Request Forgery Prevention 자세히 → 오류 보여주기 필수 오류 화면은 방문자에게는 한 줄, 자세한 것은 서버 기록에만. 지킬 것 5가지Error Handling 자세히 → 기록 남기기 필수 사고가 났을 때 «언제 누가 무엇을» 을 되짚을 수 있게 남기되, 비밀은 남기지 않는다. 지킬 것 4가지Logging 자세히 → 서비스 마비 공격 버티기 권장 일부러 무거운 요청을 보내 서버를 주저앉히는 것을 버틴다. 지킬 것 5가지Denial of Service 자세히 → 봇·자동화 막기 권장 사람인 척 로그인·가입·문의를 쏟아붓는 기계를 걸러낸다. 지킬 것 5가지Bot Management and Anti-Automation 자세히 → Node.js 서버 권장 우리 사이트가 돌아가는 엔진(Node.js)에서 자주 나는 사고. 지킬 것 6가지Node.js Security 자세히 → 결제·연동2개 돈이 오가거나 남의 서비스가 우리를 부르는 자리.
결제 붙이기 해당할 때 브라우저가 «결제 끝났어요» 라고 해도 믿지 않는다. 결제 회사에 직접 물어본다. 지킬 것 7가지Third Party Payment Gateway Integration 자세히 → 바깥에서 오는 알림(웹훅) 해당할 때 «결제됐습니다» 알림을 받는 주소는 누구나 두드릴 수 있다. 진짜가 보낸 것인지 확인한다. 지킬 것 6가지Webhook Security 자세히 → 부품·배포4개 남이 만든 부품과 자동 배포 과정에서 생기는 구멍.
부품(npm) 설치 필수 남이 만든 부품을 깔 때, 이름이 비슷한 가짜와 설치 때 몰래 도는 스크립트를 조심한다. 지킬 것 6가지NPM Security 자세히 → 취약한 부품 찾아 고치기 필수 쓰고 있는 부품에서 구멍이 발견되면 알아채고 올린다. 지킬 것 4가지Vulnerable Dependency Management 자세히 → 자동 배포(GitHub Actions) 해당할 때 자동 배포는 서버 열쇠를 쥐고 있다. 그 과정에 남의 코드가 끼어들지 못하게 한다. 지킬 것 5가지GitHub Actions Security 자세히 → Next.js 필수 우리 사이트의 뼈대(Next.js)에서 «막은 줄 알았는데 열려 있는» 자리들. 지킬 것 8가지Next.js Security 자세히 → AI4개 AI 에게 일을 시키거나 AI 로 코드를 짤 때 새로 생긴 구멍.
AI 속이기(프롬프트 주입) 막기 해당할 때 AI 가 읽는 글 속에 «앞의 지시는 무시하고…» 를 숨겨 AI 를 조종하는 공격. 지킬 것 6가지LLM Prompt Injection Prevention 자세히 → AI 에이전트 해당할 때 AI 가 스스로 도구를 쓰면, AI 가 속았을 때 그 도구가 그대로 쓰인다. 지킬 것 6가지AI Agent Security 자세히 → MCP 연결선 해당할 때 AI 에 붙이는 연결선은 AI 에게 말을 걸 수 있다. 연결선의 설명문도 지시가 된다. 지킬 것 6가지MCP Security 자세히 → AI 로 코드 짜기 필수 AI 가 짠 코드도 올린 사람이 책임진다. 지킬 것 6가지Secure Coding with AI 자세히 → 출처: OWASP Cheat Sheet Series (깃허브 ) · CC BY-SA 4.0 · 원문 확인 2026-10-07. 원문을 그대로 옮긴 것이 아니라 골라서 우리말로 줄여 쓴 것이고, 이 화면의 규정 풀이도 같은 조건(CC BY-SA 4.0)으로 쓸 수 있습니다. 비밀번호 강도·만료 시간 같은 수치는 OWASP 가 고치므로, 실제로 적용할 때는 카드 안의 원문 링크를 다시 봅니다.