2016-04-07 2 views
0

私は最近、制限されているいくつかのクラス(特にCookieManagerとそのインポート)をAppEngineで使用しようとしています。これはおそらくwhitelistにないからです。AppEngineのJREライブラリクラスへのアクセスを制限する目的は何ですか?

私が見つけられないように見えるのは、最初に制限されたクラスがある理由です。私は制限されたクラスからソースコードを取り出し、それを自分のパッケージにコピーアンドペーストすることができます。これらのクラス制限のポイントは何ですか?

私の中のシニックは、記憶容量を増やすためにコードの重複を奨励したいと言っていますが、他の理由で私に教えてもらえますか?java.*パッケージのクラスにアクセスすることはできませんあなた自身のパッケージ内の全く同じソースから構築されたクラスにアクセスできますか?

+0

あなたはこのクラスの名前を提供することができますか? –

+0

@IgorArtamonov「CookieManager」は、インポートしたクラスのいくつかと一緒に私自身のコピーを作成しなければならなかったものでした。 – Chris

+0

これはあなたの質問に含める必要があります。それぞれの制限されたクラスには除外する独自の理由があるので、私はこの質問に "_一般的に"答えることはできないと考えています –

答えて

1

環境内のアプリケーションやアプリケーションを危険にさらす可能性のあるコードを提供するクラスを実行できないように、ホワイトリストが存在します。これらは、サンドボックス(すなわち、アプリケーション空間)をエスケープして、サンドボックス環境外のマシン、ディスクまたはネットワークにアクセスする可能性のある操作からの範囲です。 GoogleがGAE用に使用するコンテナシステムは公開されていないため、これらがどのような味を取ることができるのかは不明です。

JREのクラスは年齢が大きく異なり、多くは奇妙な振る舞いやカップリングがあるため、クラスがブラックリストに登録されている理由は必ずしも明らかではありません。たとえば、jdbcドライバとDriverManagerの間の結合を考えてみましょう(これはセキュリティ上の欠陥であることを示唆するものではなく、珍しいAPIとJavaの実装です)。おそらく、Cookieマネージャーは、ストレージを処理する実装の前提のために、他のアプリケーションの情報にアクセスすることを許可するかもしれません。これらのいくつかは特定するためにどのようにトリッキーな例として、ここでは昨年から発表

です:enter link description here

+0

この点についてより多くの洞察をいただき、ありがとうございます。セキュリティ会社の報告によると、いくつかのクラスにはパッケージの内容に基づいて特権が与えられていることが示されているため、脆弱性に関するリンクは特に興味深いようです。これはGoogleがCookieManagerによってユーザーをサンドボックスを使用するか、またはより安全な方法よりも安全で、ホワイトリストを作成するのに気を使わないでください。 – Chris