セキュアコーディングとは、攻撃に耐性があり、データを保護するコードを書くことです — 一般的な脆弱性を防ぐ実践に従っています。基本を理解することで、開発者は後から付け足すのではなく、最初からセキュリティを組み込んで構築することができます。
コアなセキュアコーディング実践
✓ VALIDATE all input (never trust user/external input); allowlist where possible
✓ Use PARAMETERIZED queries (prevent SQL injection); ESCAPE output (prevent XSS)
✓ AUTHENTICATE and AUTHORIZE properly (verify identity; check permissions server-side)
✓ HANDLE SENSITIVE DATA carefully — hash passwords, encrypt sensitive data, use HTTPS
✓ Don't HARDCODE SECRETS (keys, passwords) in code → use env vars / secrets managers
✓ Use SECURE DEFAULTS; fail securely (errors shouldn't expose data or grant access)
よくある間違いを避ける
✗ Trusting user input / client-side checks (validate on the SERVER)
✗ Exposing sensitive info in errors/logs (stack traces, secrets, PII)
✗ Using outdated/vulnerable DEPENDENCIES (keep them updated; scan them)
✗ Rolling your own CRYPTO (use vetted libraries/standards, not custom algorithms)
✗ Overly broad permissions (apply LEAST PRIVILEGE)
