- PR -

サーバのメソッドコール元を限定したいのですが

1
投稿者投稿内容
がらす
ベテラン
会議室デビュー日: 2005/07/14
投稿数: 99
投稿日時: 2005-07-14 10:57
C++の経験はあるものの.NET初心者です。サーバ内で動くコードと、それにLANを使ってアクセスする複数のクライエント側コードを開発しています。一応動くようなプロトタイプは出来たのですが、セキュリティ上の疑問が出てきました。

自社で開発したクライエントコード以外からサーバのメソッドにアクセス出来ないようにするにはどうしたらよいのでしょうか?自社のstrong nameで署名するだけでは十分でない気がするのですが。

今のままでは、顧客がサーバ側のAPIを呼び出すような独自のクライエントコードを書いて顧客の strong name で署名した場合、サーバ側の機能を好きなだけ呼び出し放題になってしまう気がするのですが...。

ひょっとしたら大きな誤解をしているかもしれませんが、ドキュメントを色々漁ってみてもこの疑問への明確な答えが見つかりませんでした。

どうぞよろしくおねがいします。
Edosson
ぬし
会議室デビュー日: 2004/04/30
投稿数: 675
投稿日時: 2005-07-14 11:13
呼び出しコードで相手を識別するのは大変かと。

Webアプリなんですから、認証機構を追加、
自社と顧客を別グループにして、それぞれに適切なスコープを与える、
というのが一般的な対策ではないでしょうか。
がらす
ベテラン
会議室デビュー日: 2005/07/14
投稿数: 99
投稿日時: 2005-07-14 11:23
説明が足りなかったようですみませんが、Webアプリを作っているわけではありません。

.NET Remotingを使うことを考えています。サーバプロセスとクライエントプロセスの両方が同一PC上に存在するケースもあり得ます。

極端な話、サーバ機能のDLLと同じディレクトリに顧客製のDLLを置かれて参照されても、うちのDLLが呼び出されたりしないようにしたい、という話です。あまり「サーバ」と関係なかったかもしれません...すみません...。

きくちゃん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 854
お住まい・勤務地: 都内某所
投稿日時: 2005-07-14 12:37
がらすさん、こんにちは。

引用:

うちのDLLが呼び出されたりしないようにしたい、という話です。


この辺とか、参考になりませんか?
あるいは独自に認証の仕組みを実装するとか。
1

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