skillup

技術ブログ

Database サーバー・ネットワーク

SQLインジェクション

投稿日:2017年2月2日 更新日:

セキュリティ関係の知識がぬるいのでちょっとお勉強。

知っていることもあるが復習もかねて勉強を。

SQLインジェクションとは?

SQLの不備を利用して、システムを攻撃されること。

具体的な攻撃方法はWikiが詳しい

被害

データベースを攻撃されることになるので個人情報の漏洩、データの改ざん

対策

  • SQL文の組み立てはすべてプレースホルダで実装。(あるいは引数のすべてにエスケープ関数を使う)
  • エラーメッセージをブラウザに表示しない。情報を与えない。
  • エラーメッセージ自体はログに正常に吐く
  • 正規表現チェックなど値のチェックを入れる
  • データベースに適切なアカウントを与える(必要以上の権限を付与しない。なるべく必要最低限の範囲で済ませる。)

もっと詳しく知りたい場合は下記リンクで。

参考サイト・書籍

安全なウェブサイトの作り方

安全なSQLの呼び出し方

安全なWebアプリケーションの作り方

ソース

https://github.com/umanari145/secure

-Database, サーバー・ネットワーク
-

執筆者:


  1. […] SQLインジェクション […]

comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

no image

障害調査フロー

実務でサーバーの障害が発生した時のフローなどをメモしおこうかと。 行ってしまうと「ログに始まり、ログにおわる」といった感じでしょうか。 サーバーエンジニアの方の作業をみてたんですが、基本的にはプログラ …

no image

シェル基礎2

シェルコマンド使い始めて数年たちますが、いまだに知らないことはおおいですし、早く知っとけばよかった的なこともたくさんあります。 そんな小ネタ集を alias よく使うコマンドを別名で登録することができ …

no image

SQL サブクエリ

前回の問題をサブクエリを使って解きます。前年度の売上を出すのが一番難しいので、それを出す方法です。MySQLだとそもそも分析関数が存在しないので・・ [crayon-66ff21b3af6910368 …

no image

Azureの復習

今年からAzureの案件にはいっていろいろとインフラ周りを整理しておりますので、復習も兼ねて少しまとめておこうかと思います。 とりあえず出てくる重要な概念やサービスを五月雨に・・・ Contents1 …

no image

ECCUBE2,3でのnginx利用

ECCUBE2,3をインストールする機会があったのでメモ。 例によってnginxの設定がめんどいですね。・・ ファイルパス ECCUBE2,ECCUBE3ともに下記パス,URLと仮定します。 [cra …

アーカイブ