skillup

技術ブログ

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

SQLインジェクション

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

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

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

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

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

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

被害

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

対策

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

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

参考サイト・書籍

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

安全なSQLの呼び出し方

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

ソース

https://github.com/umanari145/secure

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

執筆者:


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

comment

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

関連記事

no image

エンティティの抽出と主キー決定

主に設計に関することのメモ。 Contents1 業務フロー分析2 エンティティの抽出3 エンティティの関連付け4 主キーの抽出を行う4.1 主キーの特徴4.2 サロゲートキーのメリット4.3 サロゲ …

no image

dockerコンテナ間での連携(PHP+MySQL)

dockerでのコンテナ間の連携について 以前、dockerではCentOSのイメージからコンテナを作成し、その中にphp,apache,mysqlをインストールしてましたが、dockerの使い方とし …

no image

MYSQL group_concat,cast等

実務でいろいろとトラブルがあり、データベースから在庫データを見てくれ~なんて依頼がありましたんでSQLをごりごり書いていたんですが、普段使わないようなSQLの構文を使ったのでここでちょっと紹介します。 …

no image

Gitのブランチについて

ちょっといろいろと触っているGitに関して。 前回は作業ディレクトリ、インデックス、コミットについて説明したのですが、今回はブランチについて行います。 Contents1 ブランチとは?2 ブランチに …

no image

journald

CentOS7では従来のsyslogデーモンと並行してjournaldというログ管理サービスがあります。 Contents1 コマンド一覧2 参考図書・リンク コマンド一覧 [crayon-61e4e …