タグ

ブックマーク / 0-9.tumblr.com (2)

  • RDocの脆弱性情報に見るjQueryの安全な使い方

    2013-02-06に以下の脆弱性情報が公開されました。 RDoc で生成した HTML ドキュメントにおける XSS 脆弱性 (CVE-2013-0256) これはRDocの脆弱性情報ですが、実際にはdarkfish.jsというファイルの修正のみでありJSの問題であることがわかります。 問題のdarkfish.jsを確認すると該当の処理は「var anchor = window.location.hash.substring(1);から取得した値を$(“a[name=” + anchor + “]”);に渡した」処理であったことがわかります。 (このファイルが脆弱性情報のファイルと同じかは確認してないですが、ファイル名とコードから同一と判断しました) 修正方法としては$(“a[name=” + anchor + “]”)でのセレクター埋め込みをやめて$(“a[name]”).eachのe

    RDocの脆弱性情報に見るjQueryの安全な使い方
    mickn
    mickn 2014/03/03
  • Google AnalyticsにみるJSの非同期初期化処理

    Google Analyticsが提供するJSは以下の様な初期化処理をおこなっている。 Google Analyticsに限らす外部JSを読み込むライブラリの場合、「初期化は非同期で行いたいが、APIの読み出しは同期で行いたい」という要望がある。 通常こういった要望を叶えるためには、メインのJSが読み込み済みかどうか監視して処理を呼び分けるような長い初期化処理を貼り付けタグとして発行し各サイトに埋め込んでもらう必要がある。 ただ、貼り付けタグが長くなるとコピペミスも増えるし、貼り付けタグ部分で問題が発生した時に対処できなくなるため、貼り付けタグはできるだけ短いほうが嬉しい。 そこで最初に紹介したGoogle Analyticsのタグを見ると、初期化処理は実質「var _gaq = _gaq || [];」だけということがわかる。 ではこの初期化処理だけでどうやって「初期化は非同期だけど、A

    Google AnalyticsにみるJSの非同期初期化処理
  • 1