- PR -

ノータッチデプロイメントとIE内Windowsフォームコントロールのセキュリティの差

1
投稿者投稿内容
Dee
常連さん
会議室デビュー日: 2002/03/05
投稿数: 28
投稿日時: 2006-04-18 23:19
こんにちは。久しぶりに書き込みます。

.NET Framework 1.1環境をターゲットとし、クライアントから複数のファイルをWebサーバにアップロードするアプリケーションについての調査を行っています。複数ファイルの選択およびエクスプローラからのドラッグ&ドロップに対応することが目標です。

その調査中にノータッチデプロイメントとIE内Windowsフォームコントロールのセキュリティの差があるように感じたので、投稿してみました。情報をお持ちの方、教えていただければ幸いです。

1.スタンドアロンアップロードツール
2.Webブラウザから呼び出すアップロードツール
の両方を準備し、ユーザに好きな方を選ばせる方針です。
1.の方はWindows Installerでインストールしてもらうため、セキュリティについて悩むところがないのですが、2.のパターンで悩んでいます。
ActiveXを使ってブラウザ上にエクスプローラ的なUIを実現しているサイトは多くありますが、可能であれば1.のツールとコードを共用したいため、.NETでの実装について検討しています。以下の2パターンでの実装を思いつきましたが、どうもセキュリティの動作条件が違うようで、最終的な確認がとれていません。
・ノータッチデプロイメント
1.Webサーバ上にアップロードツールのexeファイルを配置し、そこへのリンクをHTMLに作成。
2.[管理ツール]-[.NET Framework 1.1 構成]の設定で、当該exeのURLを指定し、FullTrust権限付与
3.テスト・・・問題なく動作成功(ファイル選択・ドラッグ&ドロップ等)

やっていることは
http://www.athomejp.com/goldfish/vcs/deploymente.asp
とほぼ同じです。

・IE内Windowsフォームコントロール
http://www.gotdotnet.com/japan/team/windowsforms/iesourcing.aspx
を参考に、IE内にWindowsフォームコントロールを配置してみました。
1.exeではなくdllを作成してWebサーバに配置
2.HTML内に
<object id="Uploader" clsid="http:Uploader.dll#Uploader.UploadControl"
height="800" width="600"/>
というobjectタグを配置
3.表示成功
 ただし複数ファイルをドラッグ&ドロップしても、1ファイルしか登録されない
 ファイルを開くダイアログは開けるが、選択後にソースコードでファイル名にアクセスすると例外発生
 「これがいわゆるデフォルトのコードアクセスセキュリティですかぁ」と納得
4.[管理ツール]-[.NET Framework 1.1 構成]の設定で、当該DLLのURLを指定し、FullTrust権限付与(ノータッチデプロイメントの場合と同じ)
5.テスト・・・失敗
 3.と同じ状況のまま改善せず

URLに*を使ったり、DLLのハッシュで指定してみたりしましたが、どうもダメなようです。
自分の環境(XP SP2)にVS2005&.NET 2.0が入っていたため、念のためWin2kPro SP4 + .NET 1.1でもテストしてみましたが状況は同じでした。

ノータッチデプロイメントの場合の動作はすごくわかりやすいのですが、IE内Windowsフォームコントロールの場合が釈然としません。IE内で動作させる限りは権限の上限がある、ということなのでしょうか。

ノータッチデプロイメントの情報は(流行らなかったとはいえ)そこそこ見つかったのですが、IE内Windowsフォームコントロールの情報は極端に少ない気がします。
#そもそも「IE内Windowsフォームコントロール」に対応する正式な言葉すら分からない

何か情報がありましたら教えていただければ幸いです。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2006-04-19 21:12
 2002 年頃の、私の質問が参考になると思います。

Windows Application - ノータッチ・デプロイメント
アクセス権限/セキュリティ
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=1833&forum=7
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=2177&forum=7
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=13817&forum=7

# 懐かしい(*^-^*)

〆 written by Jitta@わんくま同盟 on 2006/04/19
□ Microsoft MVP for Visual Developer ASP/ASP.NET October, 2005 - September, 2006
Dee
常連さん
会議室デビュー日: 2002/03/05
投稿数: 28
投稿日時: 2006-04-21 03:27
Jittaさん、情報ありがとうございます。
一応検索している際にそれぞれのスレッドに行き当たっていたのですが、改めて読み直してみました。自分の理解の確認もかねてちょっとまとめます。

引用:

http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=1833&forum=7


ここからたどった
http://web.archive.org/web/20030219182522/msdn.microsoft.com/msdnmag/issues/02/06/rich/default.aspx
は有益でした。(消えてるのでInternetArchive経由)
IEにWinFormsを埋め込むパターン(Browser Embedded Controlsと呼んでますね)の基本がよく分かりました。
以下の部分が、私の求めている情報(アクセス権限を強化できるのか否か?)に該当しそうです。
引用:

Code in your class will almost certainly execute with restricted access to the user's system. Through configuration, it is possible to give a network-deployed assembly greater permissions on a system. Your code, though, should not assume the extra configuration step has been taken by a system administrator.


訳(適当)「当然ながら作成したクラスはユーザのシステムへのアクセスが制限された状態で実行される。しかし、設定次第ではシステムに対するより大きな権限を持たせることもできる。しかしながら、システム管理者による拡張設定を仮定したコードを書くべきではない。」
今回の場合、「システム管理者による拡張設定」を行わせる前提で考えています。ただ、このページからは拡張設定をどこから行うかがちょっと分かりませんでした。

引用:

http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=2177&forum=7
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=13817&forum=7



こちらでは、いくつかの方法でコードアクセスセキュリティを付与する方法が扱われていました。
1.GUIから
2.XMLインポート(GUIと等価?)
3.別途ローカルにダウンロードして実行するプログラムから
4.caspol.exeから
これらは、ノータッチデプロイメント・IE埋め込みWinForms共通の方法という認識でよいでしょうか?

また、IEの埋め込みに関する部分もありましたが、ちょっと文意をつかめたかどうか自信がありません。
コードアクセスセキュリティにおいて、ノータッチデプロイメント=IE埋め込みWinFormsなのか、それともIE埋め込みWinFormsのアクセス権限に固有の上限があるのか、という部分がちょっと分かりませんでした
お尋ねしたいのですが、最終的にJittaさんは、コードアクセスセキュリティの変更でIEに埋め込んだWinFormのアクセス権限を(FullTrust等に)増やすことができたのでしょうか?また、その際の方法は先ほどの4つのどれを使用されました?
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2006-04-21 06:01
.NET Framework の構成ツールで、サイトに対して許可を与えると、行けませんか?
2番目、3番目のリンクが該当します。

XML から与えることについては、XML の構成に関する資料が見つからなかったように思います。
todo
ぬし
会議室デビュー日: 2003/07/23
投稿数: 682
投稿日時: 2006-04-21 12:40
引用:

IEにWinFormsを埋め込むパターン(Browser Embedded Controlsと呼んでますね)の基本がよく分かりました。



マネージコントロール(managed control)と呼ばれる方が多いですね。

http://www.google.com/search?ie=Shift_JIS&q=IE+%83%7D%83l%81%5B%83W%83R%83%93%83g%83%8D%81%5B%83%8B

http://www.google.com/search?q=IE+%22managed+control%22

http://www.google.com/search?sitesearch=microsoft.com&q=%22managed+control%22+%22Internet+Explorer%22

Dee
常連さん
会議室デビュー日: 2002/03/05
投稿数: 28
投稿日時: 2006-04-21 17:38
Jittaさん、todoさん、情報ありがとうございました。
サイトに対する許可を与えることでうまく動作しました。

ボタンの外観が通常起動時と異なる(白っぽい表示になる)現象が出ていますので、managed controlというキーワードでもう少し調べてみます。ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)