Webとセキュリティの認証③
Webサイトは大きく分けて2種類あります。「リクエストに対して決まったページを表示する静的サイト」と「リクエストごとにサーバーでページを生成する動的ページ」の2種類です。
動的サイト実行できる処理の自由度が高い半面、脆弱性を突かれた場合は攻撃者のできる自由度も高くなってしまいます。
特に以下のような攻撃は危険です。
クロスサイトスクリプティング(Cross Site Scripting)
クロスサイトスクリプティングとは、あるWebサイトにユーザーを誘導し、悪意あるスクリプトをクリックさせ、本来の目的であるサイト上で不正行為を行い、その結果、ユーザーに被害を与える攻撃のことです。
具体的に言えばこんな感じです。
①攻撃者は掲示板サイトなどに「悪意あるサイトに遷移するリンク」を貼る。
②ユーザーはそのリンクをクリックする。
③クリックしたことにより不正なスクリプトを含む文字列が送信されて、これがWebアプリケーションに作用する。
④ユーザーのブラウザでスクリプトが実行、Webページを出力する際に偽ページを表示、Cookieが攻撃者の手に渡る、などなど。
クロスサイトリクエストフォージェリ(Cross Site Request Forgeries)
クロスサイトリクエストフォージェリとは、攻撃者が用意したサイトにあるリンクURLを被害者にクリックさせることによって、「その罠ページの中に仕込まれたスクリプト」が「他のサイト内で特定の操作を勝手に行わせる」という攻撃です。
これを使えば、普段利用しているサイトを勝手に操作されることもあります。
実際、自動的にログインしているユーザーと各種サイトの間には、すでに信頼関係がつくられています。そのため、第三者が不正なスクリプトを紛れ込ませても、ユーザーもサイト側も気付くことができないんです。乗っ取りみたいなことが起きてしまうんですね。
SQLインジェクション
SQLインジェクションとは、情報セキュリティにおける脆弱性の一つです。この脆弱性を悪用するとデータベース上であらゆる操作を行われてしまいます。
具体的には、ユーザIDやパスワードを入力するようなサイトを利用して行います。一般的に、ユーザIDやパスワードを入力するエリアには文字列しか入力できません。しかし、ここにSQL文(サーバを操作する命令文)を入力します。すると脆弱性があるサーバの場合、それを命令文として認識してしまいます。その結果、攻撃者からデータベースを操作できるようになってしまうんです。
データベースは個人情報の宝庫であるため、情報漏洩などにつながってしまいます。
サポート頂いた方にはコメントを返させていただきます。サポート頂けますと幸いです✌️