タグ

sqlとセキュリティに関するamerica66のブックマーク (2)

  • SQLインジェクション ④対策:サニタイジング(エスケープ)処理 : 情報処理安全確保支援士 - SE娘の剣 -

    (H18年SV午後Ⅰ問1表2より引用) これを丸暗記しようとすると難しいが、意味を理解すると覚えやすい。例えば「&」であれば、来の名称であるampersand、「<」であれば、less than(~より小さい)のltである。 セキュアプログラミングに関しては、IPAのサイトに充実した解説がされている。http://www.ipa.go.jp/security/awareness/vendor/programming/index.html 3.サニタイジング(エスケープ)処理の方法2 別の例を見ましょう。SQLインジェクション対策としてのエスケープ処理の具体的な処理としては、 ' を '' に変換します。サニタイジングをしない場合、UserNameに a' or '1'='1' と入力すると、データベース側では、 SELECT * FROM USER WHERE UserName = 'a

    SQLインジェクション ④対策:サニタイジング(エスケープ)処理 : 情報処理安全確保支援士 - SE娘の剣 -
  • 完全なSQLインジェクション対策

    (Last Updated On: 2018年12月14日)不完全なSQLインジェクション対策だけで、SQLインジェクション対策は万全、と誤解しているケースが少なくないです。 プリペアードクエリ/プレイスホルダを使ったSQLインジェクション対策でOK は誤りです。「とにかくプレイスホルダを使おう」では脆弱性は無くなりません。 簡単な証明:プリペアードクエリ”だけ”では、識別子(カラム/テーブル等)を使うソートクエリ、特定カラム抽出クエリを”原理的”に無害化できない。識別子のエスケープ/バリデーションが必須。(問題はコレだけはありません) 似たような間違いに「出力対策をするのがセキュリティ対策」だとする考え方があります。こういう考え方になる原因はセキュリティ設計や原則を理解していないことにあると思われます。 出力対策”のみ”のセキュリティはアンチプラクティス アンチプラクティスであっても正し

    完全なSQLインジェクション対策
  • 1