Hatena::ブログ(Diary)

crazyuplog このページをアンテナに追加 RSSフィード

2009-07-24

学習日記74日目 - Blogapp vol.10 -

スタートアップ研修記はこちらです。

どうも、enomotoです。

きょうは気づいたことを書いていきます。

気をつけたいこと

settings.ymlを編集するときはコメントアウトしてある部分を

コメントアウトを外して使うのではなくちゃんとまとめて書く。

all:
  .settings:
    escaping_strategy:      both
    enabled_modules:        [default, sfCryptoCaptcha]

#all:
#  .actions:

all:のコメントアウトを外すのを忘れて動作しなくていろいろ原因を探っていたらあっという間に時間が過ぎた。

こういう無駄な時間を過ごさないためにもできるだけ見やすく書く。

Webセキュリティ vol.2 〜XSS〜

  • XSSとは?
  • XSSが生まれる理由
  • XSSを防ぐ方法
  • symfonyなら安心
  • XSSってどれぐらい危険?

XSSとは?

クロスサイトスクリプティング

  • サイト間を横断して悪意のあるスクリプトを混入させること
  • これに加え、任意の要素を混入させられるうる脆弱性を含む

→ターゲットは違う人のPC・ブラウザになる。

XSSが生まれる理由

バグのせい

  1. 外部から来た値に対するチェック漏れ
  2. 入力した値のエスケープ忘れ。

XSSを防ぐ方法

  • 基本はhtmlspecialchars()関数
    • < > & "
    • 第二引数のENT_QUOTES必須
      • 'も変換してくれる
どんな値に注意するか
  • $_GET、$_POST
  • $_SERVER['PHP_SELF']
  • DBから取得した値
  • 外部サイトのRSSから取得した値
  • アップロード画像から取得した値
    • リクエストヘッダのMime-type
    • コメント領域
    • EXIF情報

symfonyなら安心

XSSってどれぐらい危険?

  • 非常に危険
    • HTML中にJSが書ける=自由度が高い
    • HTML要素やCSSを書けるだけでも恐怖
JSでできること
  • 起動タイミングは任意
  • 同一ホストへのGET/POSTが可能
  • 他ホストへのGET/POSTが可能
  • HTMLの見た目・挙動を変更できる
XMLHttpRequest
    • 同一ホスト内で可能なことはほとんど何でも可能
    • 何回でも実行可能

→様々なことが実行可能

Copyright © crazyup. All rights reserved.