2016-08-29 4 views
1

クイック追記:これはポストIs It Possible to Sandbox JavaScript Running In the Browser?ない「が重複する可能性」である、それはクッキーについてがなかった - と私は依頼する必要がありますクッキーについて私は答えを読んだ。防止(おそらくグーグルCAJAを使用して)クッキーを読み込むコード


こんにちは!私は(登録ユーザ)がのHTMLページを作成して簡単にアクセスして編集できるウェブページを持っています。アクションを行い、ユーザーがアクションをどのアカウントにユーザーが実行されるされていることを

ユーザーがアクションを行うたびに、ログイントークンがある(つまりユーザーを確認するために、)を証明します実行されなければならないアクションに沿ってサーバーに送信されます。 (クイックノート:私が保存しているトークンはではないユーザーのパスワードです、ログインごとにランダムに生成される文字列です)。そしてこれはうまくいくが、問題がある。

ユーザーはのHTMLページを作成できるため、ユーザーのログインCookieを読み取って誰かに送信するページを作成できます。この方法を使用すると、誰かが他の人のアカウントに入る可能性があります。

https://developers.google.com/caja/と聞いたことがありますが、非常に便利だったようです。 CAJAページを読んでいますが、Cookieの防止については何もありませんでした。

理想的には、ユーザーが独自のCookieを保存して読むことができますが、ログイントークンは保存できないようにしたいと考えています。 それはおそらく不可能です

したがって、ユーザーが作成したスクリプトをCookieの読み取りまたは書き込みから完全にブロックすると機能します。

しかし、問題があります:私はにCAJA完全に新しいです。誰かが、CAJAを使ってクッキーをブロックする方法を説明できますか、それとも実際には何か?

この質問はかなり古いですが、私はちょうどカハを使用し始め、事前に

答えて

0

、ありがとうございました。実装後、私はポップアップ(警告メソッド)の作成、クッキーの読み取り、およびグローバル変数へのアクセスという、いくつかのことを試みた「ゲストコード」を書きました。 Cajaの内部で実行されているコードは、これらのことを行うことができませんでした。私がCajaの外で同じコードを実行すると、それができます。だからカハはあなたがしようとしているもののために働くでしょう。信頼できないコードがURLだけ.jsファイルは 'localhostの/ badcode' を介してロードされ

var htmlId = "performance"; 
      caja.initialize({ 
       cajaServer: 'https://caja.appspot.com/', 
       debug: true 
      }); 

      caja.load(document.getElementById(htmlId), undefined, function (frame) { 
       @* Set-up config object for the activity *@ 
       var config = {}; 
       config.keydown = false; 
            frame.code('https://localhost:44327/badcode', 'application/javascript') // (6) 
        .run(function (guestF) { // (7) 
         var app = frame.untame(guestF); // (8) 
         console.log(app); 
         startCommandLineActivity(config, app); 
        }); 
      }); 

はここに私の例です。

彼らのドキュメントはかなり良いです、私はそこから始めることをお勧めします:https://developers.google.com/caja/docs/runningjavascript/

関連する問題