skillup

技術ブログ

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

SQLインジェクション

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

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

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

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

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

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

被害

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

対策

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

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

参考サイト・書籍

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

安全なSQLの呼び出し方

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

ソース

https://github.com/umanari145/secure

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

執筆者:


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

comment

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

関連記事

no image

yumのリポジトリについて

CentOSでは様々なパッケージが用意されていますが、標準で使えるもの以外にもさまざまなリポジトリがあります。 Contents1 リポジトリ一覧2 有効、無効や指定してのインストールについて リポジ …

no image

VPCでEC2+RDSを構築

以前の記事で、VPCを使ってEC2の環境を作りましたが、一般的にwebアプリはwebサーバーとDBがセットになることがほとんどだと思いますので、AWSでこの環境を構築してみようと思います。 Conte …

no image

論理設計のアンチパターン その2

今回は論理設計のアンチパターンの続きです。 今までに比べると何も意図がないというものではなく、パフォーマンスを考えて設計されているようなものが多いです。 ただし、中には絶対に許されないタイプのものもあ …

no image

セッションハイジャック

今回はセッションハイジャックについて。WEB系では必須といえるでしょう。 Contents1 セッションハイジャックとは?2 被害3 対策4 Cookieについて4.1 Domain4.2 Path4 …

no image

サブクエリ 分析関数の代替案として

今回は分析関数系のネタです。 以前にも分析関数を少し学習しましたがMySQLにはないので、サブクエリを使い書くことになります。 下記のような入出金講座があるとします。 Accounts prc_dat …

アーカイブ