タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

JavaScriptとprototype.jsとIEに関するraimon49のブックマーク (4)

  • ActiveXObjectとスクリプトエンジン間の循環参照によるメモリリーク - @think49の日記

    IE6 SP2- の ActiveXObject 周りのメモリリーク問題はあまり知られていないような気がしたので、簡単にまとめておきます。 jQuery や prototype.js では以下の方法で回避しています。 /** * メモリリークを回避する方法 (jQuery および prototype.js 方式) */ function empty () { // この関数は何も実行せず、何も参照しない位置に置く。何も参照しない故に循環参照しなくなる。 } function get (url) { var xhr = new ActiveXObject('Msxml2.XMLHTTP.6.0'); xhr.onreadystatechange = function () { // この関数は xhr を参照可能→循環参照している if (xhr.readyState === 4) { xh

    ActiveXObjectとスクリプトエンジン間の循環参照によるメモリリーク - @think49の日記
    raimon49
    raimon49 2014/02/13
    empty関数オブジェクトを入れるなら位置が重要になるためnew Function方式の方が楽という解説。
  • JSONをvbscriptとして読み込ませるJSONハイジャック(CVE-2013-1297)に注意

    はせがわようすけ氏のブログエントリ「機密情報を含むJSONには X-Content-Type-Options: nosniff をつけるべき」にて、巧妙な罠を仕掛けることにより、別ドメインのJSONデータをvbscriptとして読み込み、エラーハンドラ経由で機密情報を盗み出すという手法が紹介されました。これは、IEの脆弱性CVE-2013-1297を悪用したもので、MS13-037にて解消されていますが、MS13-037はIE6~IE8が対象であり、IE9以降では解消されていません。 また、MS13-037を適用いていないIE6~IE8の利用者もしばらく残ると考えられることから、この問題を詳しく説明致します。サイト側の対策の参考にして下さい。 問題の概要 JSON形式のデータは、通常はXMLHttpRequestオブジェクトにより読み出しますが、攻撃者が罠サイトを作成して、vbscript

    JSONをvbscriptとして読み込ませるJSONハイジャック(CVE-2013-1297)に注意
    raimon49
    raimon49 2013/05/20
    X-Requested-Withヘッダ付与とチェックついて。不完全なJSONや無限ループで読みだせなくするバッドノウハウ的な手法よりもXHRからのリクエストかどうか検証する。
  • IEメモリリークの最後の壁はAjaxのonreadystatechangeやった!! - SEの行き着くところ…

    今日はIEのメモリリーク対策に注力した - SEの行き着くところ…の続き。ついについに解決した。解決の糸口(というか答え)はPrototype.jsにしっかりと書いてたやんか! // avoid memory leak in MSIE: clean up this.transport. onreadystatechange = Prototype.emptyFunction; どうやらDOMオブジェクトだけでなく、new ActiveXObject('Msxml2.XMLHTTP')もメモリリークする模様。(確かに考えてみりゃそっちの方がリークしそう・・) ここでポイントだったのはonreadystatechangeに「null」を入れても効果がなく、関数外で定義された(できればグローバルスコープの)空関数を定義する、というところやった。(上のコードでいうとPrototype.emptyF

  • テキストエリアでリターンキーを押した際に、submitイベントの発生を抑止する方法 - Enjoy*Study

    テキストエリアでのリターンキーで、submitイベントが発生しないようにする場合、ブラウザ毎にどのような処理を書けばいいのか調べてみました。(submitイベント自体に処理を追加せずに、テキストエリアでのイベントで制御したかったので) テキストエリアでのリターンを拾えるイベントとしては、下記の3つがあります。 keypress keydown keyup イベントをキャンセルする方法は、IEのJScriptの実装と、DOM 2のEventモデルでの実装である下記の2パターンを試しました。 event.preventDefault() event.returnValue=false そして確認の結果、上記のイベント×キャンセル処理の組み合わせでsubmitイベントがキャンセル出来るのは、下記のパターンとなりました。 IE 6 keydown - event.returnValue=false

    テキストエリアでリターンキーを押した際に、submitイベントの発生を抑止する方法 - Enjoy*Study
    raimon49
    raimon49 2008/01/23
    IEはevent.returnValue=false, Firefoxはevent.preventDefault()
  • 1