Security(セキュリティ)

PHP

PHP脆弱性対応:XSS(クロスサイトスクリプティング)

今週の主な作業はお問い合せフォームの脆弱性対策(セキュリティー対策)でした。

 

例えば、

入力フォームに「<script>alert("test");</script>」

とJavascriptのコードを打ち込まれると、

確認画面に移動した際にこのコードが実行されてしまいます。

 

いわゆる、

XSS(クロスサイトスクリプティング)スクリプトインサーションという現象で、

ユーザーが悪意のあるコードを入力すると、

確認画面でそのまま実行されてしまい、

重大な脆弱性に繋がってしまいます。

 

これは、

JavaScriptやHTMLなどの意味のある文字列をhtmlspecialchars()を使ってエンティティに変換することで防げます。

 

私の場合は、

/*
*説明:特殊文字をHTMLエンティティに変換する
* IN :$string HTMLエンティティの対象となる文字列
* OUT:HTMLエンティティ変換後の文字列
*/
function h($string){
  if(is_array($string)){
    return array_map("h", $string);
  }else{
    return htmlspecialchars($string, ENT_QUOTES);
  }
}

のような関数を作ってやり、

foreach($_POST as $key => $val){
  if(!empty($val)){
    $$key = (function_exists("h")) ? h($val) : @htmlspecialchars($val);
  }
}

という具合にして、

POSTされてきた入力値を確認画面で処理してやります。

 

まあ、

XSS(クロスサイトスクリプティング)に関してはこれでいいですかね。

 

フォームの脆弱性・セキュリティ対策は、

他にもたくさんあります。

 

それは、

また別の記事で書きます。

WordPress短期学習プログラム

関連記事

  1. PHP(ピー・エイチ・ピー)
  2. PHP(ピー・エイチ・ピー)

    PHP

    PHPで「Class 'DomDocument' not found」というエラーが!!

    あるプログラムを載せているサーバーを変更することになったのですが、…

  3. PHP

    MyISAMではロールバック(rollback)が出来ない!!

     データベースでデータの管理を行う際に、データの整合性を保つために…

  4. PHP

    PHP4では読み込めていたんですが。。。

     先日、急にあるプログラムが正常に動作しなくなったとの報告がありま…

  5. PHP

    お名前.comのVPSサーバ(KVM)にPHPをインストール

    お名前.comのVPSサーバにPHPをインストールしてみました!!…

  6. PHP

    split()関数とexplode()関数

    サーバーのバージョンを5.3へアップした途端、PHP Deprec…

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

最近の記事

  1. CakePHP
  2. PHP(ピー・エイチ・ピー)
  3. PHP(ピー・エイチ・ピー)
  4. PHP(ピー・エイチ・ピー)
  5. WP:WordPress(ワードプレス)
  6. WP:WordPress(ワードプレス)
  7. WP:WordPress(ワードプレス)
  8. Security(セキュリティ)
  9. WP:WordPress(ワードプレス)
  10. WP:WordPress(ワードプレス)
PAGE TOP