質問

Silverlightコードがブラウザー内でどのように機能するかはよくわかりません。アセンブリはクライアントマシンにダウンロードされていますか? Reflectorまたは同様のツールを使用してコードが逆コンパイルされる可能性はありますか?もしそうなら、コードを保護するためにどのようなオプションが必要ですか? .net難読化ツールはSilverlightで動作しますか?

役に立ちましたか?

解決

Silverlightアプリケーションを表示するには、クライアントは、dll、1つの構成xml、およびオプションのリソースを含む.xapファイルをダウンロードします。 dllには、クライアントマシンのSilverlightランタイムで実行されるコンパイル済みのc#コードが含まれています。 Silverlightランタイムは、基本的に完全な.netランタイムのサブセットです。つまり、ユーザーはdllのコードを取得し、ツールを使用して元のソースコードを取得できます。だから、せいぜいあなたができるのは難読化です。それでも、非常に重要なコードの場合は、オプションにすべきではありません。必要に応じて、他の方法(コードの一部を隠すためのWCFまたは他のWebサービス)を使用できます。

他のヒント

Webブラウザーを使用しているときは常に、すべてのクライアント側コードがマシンにダウンロードされ、ユーザーが検査できます。これは、Javascript、Flash、Silverlightに当てはまります。

絶対に非表示にする必要がある独自のコードがある場合は、サーバーに配置して、クライアントがユーザーに情報を表示するために呼び出すことができるAPIを公開する必要があります。

Silverlightアプリでコードを簡単に確認できるようにするには、SilverlightSpy FirstFloor によるリンクテキスト。 .NET Reflector がインストールされている限り、(アプリとやり取りする)xamlファイルを含むすべてのソースコード。

コードはクライアントにダウンロードされるため(それを防ぐためにプラグマno-cache はURLにヒットする可能性があるため機能しません)サーバー上の重要なロジックを維持することでコードを保護する必要があります。

恐れている人があなたの知的財産を盗み、その法律が十分でない場合、コードを難読化する必要があります。しかし、私はその保護を言うごとくではなく、カジュアルなリバースエンジニアへの抑止力と呼びます。

プラグマ-No Cache-を置くと、.xapがマシンに保存されなくなり、代わりにSilverlightプラグインによってストリーミングされます。プラグマがない場合、.xapファイルはインターネット一時ファイルに保存されます。

httpsのページにアプリケーションを置くと、.xapの送信がさらに保護されます

可能であれば、Webページ/.xapファイルを表示するために認証が必要です(Joelに感謝)

エムラー、

はい、SLアプリケーションでは難読化が可能です。

はい、Silverlight xapファイルはアセンブリを含むzipファイルにすぎないため、難読化による保護が必要です。 暗号難読化を試してください-xapファイルを直接難読化し、XAMLを難読化することもできますクラス参照の名前変更、コメントの削除、空白、改行などによるアセンブリ内のファイル

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top