Silverlight コードがブラウザー内でどのように機能するのかよくわかりません。アセンブリはクライアント マシンにダウンロードされていますか? Reflector または同様のツールを使用してコードが逆コンパイルされる可能性はありますか? もしそうなら、コードを保護するためにどのようなオプションが必要ですか? .net 難読化ツールは Silverlight で動作しますか?
7 に答える
Web ブラウザーを使用しているときはいつでも、すべてのクライアント側コードがマシンにダウンロードされ、ユーザーが調べることができます。これは、Javascript、Flash、および Silverlight に当てはまります。
絶対に隠す必要がある独自のコードがある場合は、それをサーバーに配置し、クライアントがユーザーに情報を表示するために呼び出すことができる API を公開する必要があります。
Silverlight アプリケーションを表示するには、クライアントは、dll と 1 つの構成 xml およびオプションのリソースを含む .xap ファイルをダウンロードします。dll には、クライアント マシンの Silverlight ランタイムで実行されるコンパイル済みの c# コードが含まれています。Silverlight ランタイムは基本的に、完全な .net ランタイムのサブセットです。したがって、ポイントは、ユーザーが dll でコードを取得し、ツールを使用して元のソース コードを取得できることです。したがって、できることはせいぜい難読化だけです。オプションではない非常に重要なコードの場合でも。必要性が叫ばれている場合は、他の方法 (WCF またはコードの一部を非表示にする他の Web サービス) を使用できます。
Silverlightアプリでコードを確認するのがいかに簡単かを知りたい場合は、FirstFloorによるSilverlightSpyリンクテキストを実行するだけです。.NET Reflectorがインストールされている限り、xamlファイルを含むすべてのソースコードを(アプリを操作しながら)表示できます。
コードはクライアントにダウンロードされるため(プラグマを使用してコードを防止しようとしても、URLにヒットする可能性があるため、キャッシュは機能しません)、サーバー上に重要なロジックを保持してコードを保護する必要があります。
誰かがあなたの知的財産を盗むことを恐れていて、その法律では不十分な場合は、コードを難読化する必要があります。しかし、私はその保護を一言で言うとは言いませんが、カジュアルなリバース エンジニアに対する抑止力とは言えません。
エムラ、
はい、SL アプリケーションでは難読化が可能です。
プラグマ -No Cache- を配置すると、.xap がマシンに保存されなくなり、代わりに Silverlight プラグインによってストリーミングされます。プラグマがない場合、.xap ファイルは一時インターネット ファイルに保存されます。
アプリケーションを https 上のページに配置すると、.xap の送信がさらに保護されます。
可能であれば、Web ページ / .xap ファイルを表示するために認証が必要です (thanks Joel)
はい、Silverlight xap ファイルはアセンブリを含む zip ファイルに過ぎないため、難読化による保護が必要です。Crypto Obfuscatorを試してみてください。xapファイルを直接難読化します。また、クラス参照の名前を変更したり、コメント、空白、改行などを削除したりして、アセンブリ内の XAML ファイルを難読化することもできます。