厳密に何が変わったのかは知りませんが、かなり XSS に神経質になっているのかもしれませんね。 Always set the sanitize parameter to true for data coming from externals sources to prevent XSS attacks. 元々、常に、str.evalJSON(true) という呼び出しして下さいって事になっていますが、それは常に入力値に対して無防備な文字列を通す場合です。ですが、true にしていて何も悪い事は無いのでしたほうがいいですね ただ、1.7_rc2 では相当何かテコ入れしているようなのですが・・・イマイチマニュアルには書かれていないようなのです。( 当たり前と言えば当たり前ですが ) 何なんでしょう。1.6.1
function evalJSON(sanitize) { var json = this.unfilterJSON(); try { if (!sanitize || json.isJSON()) return eval('(' + json + ')'); } catch (e) { } throw new SyntaxError('Badly formed JSON string: ' + this.inspect()); }
function evalJSON(sanitize) { var json = this.unfilterJSON(), cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g; if (cx.test(json)) { json = json.replace(cx, function (a) { return '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4); }); } try { if (!sanitize || json.isJSON()) return eval('(' + json + ')'); } catch (e) { } throw new SyntaxError('Badly formed JSON string: ' + this.inspect()); }
タグ:prototype.js
|
【prototype.jsの最新記事】
- prototype.js (1.7.2) : Browser プロパティ
- prototype.js でブラウザの種類を知る為の簡単な拡張。
- prototype.js でクロスドメインの Ajax の読み込みテスト
- prototype.js で使っていたのをさらに短縮した IE かどうかの判断。
- Google の prototype.js を使う
- prototype.js 内の getElementsByName の代わりになるメソッド
- prototype.js : $ 関数
- JavaScript : prototype.js(1.6.1) の Try.these と XMLHttpRequest
- prototype.js の Object.extend でプロパティを追加する
- prototype.js で、$(id) 関数が name 属性のみの場合 IE 以外で使え無いのをとりあえず使えるようにする