2009-08-18 12 views
1

私は確かに、いくつかの不可解な理由のために、Javascriptを使ってクッキーを操作するサイトはまだたくさんあると確信していますが、実際に起こりうるすべてのXSSに照らしてこれを許可する正当な理由はありません。なぜブラウザはこれをまだ許可していますか?単にJSがクッキーを見るのを妨げないのはなぜですか?ブラウザでもJavascriptにCookieが表示されるのはなぜですか?

+8

基本機能なので、それが煩わしい場合はNoScriptを使用してください。 – voyager

+0

これは私のことではなく、巨大な維持不能なコードベースでXSSの脆弱性を利用してクッキーを手に入れたユーザーのことです。私たちはゼロから再構築したいのですが、禁止しています。 :) – dirtside

+1

http://www.codinghorror.com/blog/archives/001167.html HTTPクッキーはクールです... – russau

答えて

4

私は、この質問は「ブラウザがまだHTML、それとも古いものをサポートしているのか」と似ていることを認めなければなりません。下位互換性は大きな問題であり、クッキーを操作する既存のjavascriptコードをすべて切り捨てると悲惨です。

と言われています。つまり、クッキーのjavascript操作が、クロスサイト通信などに役立つ場合もあります。

4

このようにして、AJAXリクエストを行わずにCookieに直接設定し、サーバー側のsession/user_profileに保存することができます。これは、セッションが終了したときに設定を表示するために登録する必要がないため、Webサイトやサーバー側を再訪したときに保持したいUI設定に便利です。

+0

そして、クッキーなしでセッションをどのように実装しますか? URLパラメータを使用していますか?それはクッキーより悪いです。 –

+0

+1。 username = sean&password = 1234のCookieは、Web開発者の立場からばかげているだけです。しかし、hide_tips = trueのクッキーは、とにかく無害です。 – seanmonstar

0

サーバー側からhttponly Cookieを設定することはできますが、JavaScriptではそれらを見ることができません。それはあなたが望む効果を与えるでしょう。

私は時々、クライアント側で使用されているにもかかわらず、ブラウザがすべてのリクエストでCookieをサーバーに送信するという点で、javascriptからのクライアント側のデータを少量保存することに頼っています側。

+0

しかし、すべてのブラウザがHTTPOnly Cookieを理解するわけではありません。彼らが理解していても、その中にはバグがあります。 –

+0

XMLHttpReponseハックのブラウザサポート/ステータスの表:http://www.owasp.org/index.php/HTTPOnly#Browsers_Supporting_HTTPOnly まだXSS攻撃に対してCookieを放棄している100%以上のブラウザ。 – russau

6

そして、明確にすることができます。 JavaScriptを操作するJavaScriptは、合理的かつ合理的です。それ自体は、XSSの問題を作成しません。ひどく書かれたサイトがあります。

関連する問題