MS10-070 と URIセグメント長

少し前に話題になりました [MS10-070] ASP.NET の脆弱性により、情報漏えいが起こる の件でちょこっとだけ。

この脆弱性そのものに対する修正パッチはすでにリリースされているのですが、このパッチを適用するとURLセッションで使われるセッションキー長がURIセグメント長の制限値を超えてしまい、Bad Requestになっちゃうという、別の問題が表面化したようです。

この問題について、下記に詳しく記載があります。

MS10-070 をインストールすると携帯向けのURL セッションが通らない (kazuk は null に触れてしまった)

回避方法としてはHTTP.sysの設定を変更することなんですがレジストリを修正する必要があるのですね。

で、関連して何が問題かというと Windows Azure ではレジストリさわれないので、この設定を変更することはできないということ。

おおもとの脆弱性に対する回避策をきちんと行い、パッチそのものは適用しないという対応で考えると、現状URLセッションを利用する携帯アプリ等はMS10-070が適用された “Windows Azure Guest OS 1.7 (Release 201009-01)” は利用したらNG、という事になるんでしょうかね…

また余談ですが、URIセグメント長については、 Azure Storage Table に対しアクセスする際に引っかかる場合もありますので要注意です。

URI セグメントの長さは 260 文字以下でなければならないという、Http.sys の既定の制限を使用します。
これにより、パーティション キーと行キーのサイズが制限されます。GetRow、Delete、Update、および Merge を使用するには、パーティション キーと行キーが 1 つの URI セグメントの一部として指定されている必要があるからです。
たとえば、http://<アカウント>.windows.core.net/Customers(PartitionKey="pk",RowKey="rk") という URI は、PartitionKey
が "pk" で RowKey が "rk" の 1 つのエンティティを指定しています。Http.sys の制限により、強調表示された部分は 260 文字以下でなければなりません。
この問題を回避するには、この制限を持つ操作をエンティティ グループ トランザクションを使用して実行します。エンティティ グループ トランザクションでは、リソースを識別する URI は要求本文に含まれるからです

Windows Azure Platform デベロッパー センター > ホーム >  Windows AzureWindows Azure テーブル – テーブル ストレージのプログラミング より引用

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中