チェ・ゲバムラの日記

脱犬の道を目指す男のブログ

PHPに関するセキュリティのまとめ その1

まなんだことその1

 

「セキュリティ、攻撃方法とその対策について①」

(基本)
・バリデーションチェック : 入力された値が正しいか確認を行い処理を継続するかチェックする
・エラーメッセージからの情報漏えい : 入力の誤りについて詳細なエラー内容を表示してしまいパスワードなどを破る手がかりにつながる
 →対策 : 必要以上に詳細なエラー内容を表示させない
・権限の設定 : 最低限必要な利用者にのみ必要最低限のアクセスを許可する

スクリプト挿入攻撃(直接) : 掲示板などの入力フォームに悪意のあるHTMLタグやJavaScriptを送信する攻撃
対策:htmlspecialchars()を使い、特殊文字をエスケープする

XSS(クロスサイトスクリプティング)(間接) : 攻撃用の別のサイトを介して悪意のあるHTMLタグやJavaScriptを送信する攻撃
対策:特殊文字をエスケープ、文字エンコードを適切に指定

CSRF(クロスサイトリクエストフォージェリ) : 不正Webページにアクセスすると、不正Webページ内のリクエストが攻撃対象サーバに送られログイン情報などが抜き取られる
対策:セキュリティソフトなどで不正サイトへのアクセスをブロックする
   利便性は落ちるがワンタイムトークンの発行

SQLインジェクション : データベース操作のクエリを改ざんし、データを不正に取得したり改ざんする攻撃
対策:プリペアドステートメントを利用
(→事前にSQL文の雛型を設定し、その中に変数となる部分を指定しておく
 変数となる部分に値を代入することで、SQL文の構造自体は改ざんされることなく実行することができる)