安全なウェブサイトを作るための対策

[CSRF(クロスサイトリクエストフォージェリ)] ユーザーが攻撃対象のサイトにログインしている時に罠サイトを踏んでしまった際に、Cookie情報を読み取られることで攻撃者がユーザーになりすましログイン状態でしか実行できない重要な処理をリクエストすることができる攻撃です。 Cookieのような固定の値をセッションIDとして使用していることから発生する脆弱性で、ランダムな文字列によるトークンでセッションIDを照合するようにしておくことで回避することができます。   [XSS(クロスサイトスクリプティング)] 掲示板などの入力フォームから受け取った値をサイト上に表示するウェブサイトに対して、入力フォームから直接スクリプトを書き込むことでサイト利用者の個人情報を入手したりサイトの構造を改変することができる攻撃です。 「<>」や「&」のようなHTML上で特殊な意味を持つ文字をそのまま反映させてしまうことから発生する脆弱性で、「htmlspecialchars」を用いて特殊な文字のエスケープ処理を行うようにすることで回避することができます。   [SQLインジェクション] データベースから取り出す値を直接指定している場合に、直接スクリプトを書き込み「~ OR 1 = 1」のような形で条件を満たして内部の情報を引き出す攻撃です。 データベースから値を取り出す際に一度変数に置き換えておき、その変数を書き換える形で値を取得するプレースホルダと呼ばれる方法を使うことで回避することができます。   [オープンリダイレクタ] リンクを導入しているウェブサイトにおいて「~?url = 」以降のURLを差し替えることで、本来のウェブサイトへの信頼を利用して悪意のあるサイトへ誘導する攻撃です。 「中間にクッションページを置く」などで対策することができます。   [ディレクトリ・トラバーサル] ユーザーがファイル等を読み込むためのフォームを導入しているウェブサイトにおいて、「../」のような特殊な意味を持つ文字を利用することで本来アクセスできないはずのディレクトリにアクセスする攻撃です。 特殊な文字列をそのままの意味で読み込んでしまうことから発生する脆弱性で、「ファイル名は英数字のみ通す」ようにするなどで対策することができます。   参考 IPA 安全なウェブサイトの作り方 https://www.ipa.go.jp/security/vuln/websecurity.html
カテゴリー: PHP

コメントを残す

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