← クエスト一覧へ

Webセキュリティ基礎 ガイドブック

🏠

基礎知識

3 記事
1
XSS 攻撃と防御

XSS(Cross-Site Scripting)は、攻撃者がWebページに悪意のある JavaScript を注入し、ユーザーのブラウザ上で実行させる攻撃です。

🛡️ XSS の防御方法
  • HTMLエスケープ<&lt; など
  • テンプレートエンジン:Jinja2 など自動エスケープするものを使う
  • CSP:実行できるスクリプトのソースを制限
2
SQLインジェクションと対策

SQLインジェクションは、ユーザー入力に悪意のある SQL を混ぜてデータベースを不正操作する攻撃です。

🛡️ プレースホルダで防御
# OK: プレースホルダを使う
cursor.execute("SELECT * FROM users WHERE name=?", (name,))

# ORM を使えばさらに安全
user = User.query.filter_by(name=name).first()
3
CSRF 攻撃と CSRFトークン

CSRFは、ログイン済みユーザーが罠サイトを訪問したとき、ユーザーの権限で意図しないリクエストを送信させる攻撃です。

🛡️ CSRFトークンで防御
<form method="POST">
  <input type="hidden" name="csrf_token" value="{{ csrf_token }}">
</form>

from flask_wtf.csrf import CSRFProtect
csrf = CSRFProtect(app)