LoginSignup
2
1

More than 5 years have passed since last update.

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

Posted at

SQLインジェクションは、調べると

SQLインジェクション(英: SQL Injection)とは、アプリケーションのセキュリティ上の不備を意図的に利用し、アプリケーションが想定しないSQL文を実行させることにより、データベースシステムを不正に操作する攻撃方法のこと。 また、その攻撃を可能とする脆弱性のことである。

言っていることは理解できたのですが、具体的にどうやって攻撃されるの?ということで簡単ですが書いていきます。

テキスト上でDBにアクセスできる


例えば、パスワードを入力する欄があるとします。
そこに検索条件を入れてしまえば、DBの内容を変更できたり、削除したり、検索できたりすること。

いわゆる情報漏えいとなり、大変なことになってしまうのだが
SQLインジェクションを行う人も、サイトのセキュリティーがしっかりしていない方もどちらも問題があるといえる。

まとめるとこんな感じ
2.jpg

パスワードの入力欄に 適当なパスワード or "A" = "A"
or文を使うことによって、必然的に「真」にするとことができてしまう。

これをSQL文にすると

SELECT * FROM ユーザマスタ WHERE パスワード = 0000 OR 'A' = 'A'

このようになり、全体として「真」になるので結果的にログインが出来てしまう構造だ。

有名サイトでは脆弱なサイトは少ないが、個人サイトだと中には脆弱なサイトも含まれているらしい。
セキュリティーもしっかりと学ばないといけないなと怖いな、と感じました。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1