タグ

securityに関するMIZのブックマーク (3)

  • 1-2. クロスサイトスクリプティング

    最近「クロスサイトスクリプティング脆弱性により個人情報が盗まれる」といった話題を頻繁に耳にする。Webサイトを閲覧するだけで,ユーザの個人情報が盗み出されたり,コンピュータ上のファイルが破壊されたり,バックドアが仕掛けられたり,といったさまざまな被害を引き起こすセキュリティ問題である。 クロスサイトスクリプティングとは図1のような多少入り組んだ攻撃手法である。 ユーザが悪意あるWebサイトを閲覧したときに, 出力されるWebページに悪意あるスクリプトが埋め込まれており, まだそのスクリプトは効果を発揮せずに標的Webサイトへ転送され, 標的Webサイトの「スクリプトを排除しない欠陥」を介して,スクリプトが効果を発揮する形でブラウザへ戻ってきて, スクリプトがブラウザで実行され,クッキーが漏洩したり,ファイルが破壊したりといった被害が発生する, といった攻撃である。(4)のように,外部から与

  • 脆弱なWebアプリケーションから脱却する5つのコツ

    テスト項目 アプリケーションの開発において、テストは必須作業である。脆弱性の発生原因の1つは、このテストが不十分であるという点にある。Webアプリケーションの検査では、入力チェック漏れやサニタイジング漏れの検査を行うが、来であれば、これらの検査は開発時のテスト工程で行うべきものだろう。 例えば、最近騒がれているSQLインジェクションについては、シングルクォート「'」の入力や、「' or 1=1--」といった文字列を入力した場合の反応をチェックするテストを行うとよい。SQLインジェクションは、これらの文字列の入力だけで確認できるわけではないが、少なくとも、これら文字列を入力した場合にエラーが発生したり、間違った動作をしたりしなければ、完璧ではないものの、最低限の目安にはなるだろう。実際のテストでは、脆弱性ごとの入力パターンをテスト項目に含めるようにすることを推奨する。 以下に簡単ではあるが

    脆弱なWebアプリケーションから脱却する5つのコツ
  • サニタイズの基本 - memo.xight.org

    Summary 入門 Ajax pp.16 より。 [2013-03-30] 追記 このエントリは、参考にしてはいけない。 SQLインジェクション MySQL PHP $sql = mysql_escape_string($sql); MySQL Perl $sql =~ s/'/''/g; $sql =~ s/\\/\\\\/g; PostgreSQL PHP $sql = pgsql_escape_string($sql); PostgreSQL Perl $sql =~ s/'/''/g; $sql =~ s/\\/\\\\/g; SQLite PHP $sql = sqlite_escape_string($sql); OSインジェクション Linux PHP $str = escapeshellarg($str); Linux Perl $str =~ s/'/\\'/g; XS

  • 1