圧倒的に正しいSQLインジェクション対策

まず結論から先に述べると、「プリペアードステートメントを必ず使え」です。

詳細

SQLインジェクションを防ぐ唯一の手段は「プリペアードステートメントを必ず使う」です。

「文字列結合でSQLを組み立てる時は、決してユーザーからの直接入力を組み込んではいけない」という大前提を守って下さい。

SQLの組み立て

SQLの生成は極力文字列結合で行わず、ORMやクエリビルダを利用するようにしてください。

どうしても文字列結合で生成する必要がある場合、「SQL文にユーザーからの自由入力値が組み込まれない」ように作って下さい。

注意

世の中には(PHP等)偽物のプリペアードステートメントがあるので、本物のプリペアードステートメントを使ってください。

まとめ

偽物ではない本物のプリペアードステートメントを使ってSQLを実行する前にコンパイルし、

ユーザーからの入力などは必ずバインド値に設定してから実行するようにしてください。

プロダクト全体で必ずプリペアードステートメントを使うようにしてください。


prev: GEX ラクフィル 所感
next: ミンサガ9周目 稼ぎ作業突入
created at : 2020-09-14 09:59:26
updated at : 2020-09-14 10:19:16
author : Toshiaki Yokoda