Silverlight コードを非表示にする効率的な方法を考えています。利用可能な難読化ツールがいくつかあることは知っていますが、それもハッキングできるようです。この面で成功した人はいますか?
6 に答える
クライアントに送信されるものを隠すことはできません。人々がそれを理解したいのなら、彼らはそうするでしょう。
クライアントマシンが取得できない独自のコードをバックエンドに配置する必要があります。
Silverlight アプリケーションをホストするページのプラグマ No-Cache は、ブラウザーが xap をキャッシュするのを防ぎ、代わりに、Web サーバーからのストリーミングによってそれを読み取ります。これにより、のぞき見が xap を取得するのが難しくなります。難読化するとさらに難しくなります。
また、アプリが https でホストされていることを確認し、認証がメイン アプリケーションの外部で行われるようにします。このようにして、xap ストリームは途中でエンコードされます。
いいえ。クライアントブラウザはコードを読み取れる必要があるため、ハッキング可能です。
xapファイルを難読化する方法に関する短い記事があります
たとえば MEF を使用して、実行中にアプリの難読化されたフラグメントをダウンロードすることで、潜在的なハッカーの仕事を複雑にする可能性があります。言うまでもなく、アプリケーションが十分に大きく、ユーザーのエクスペリエンスを妨げるのではなく、起動時間を高速化できる場合は興味深いことです。
勇敢なハッカーがコードを取得するのを防ぐことはできませんが (Silverlight プラグインがコードを実行できる必要があるため、どの方法でもこれを防ぐことはできません)、賢明なハッカーのタスクは非常に複雑になります。
ブラウザーが XAP をキャッシュしないようにすることは、HTTPS を使用する場合と同様に役に立ちません。攻撃者にとっては、ブラウザーのキャッシュで XAP を探したり、中間者攻撃を使用したりするよりも、firebug のような複雑なものを使用して XAP を取得する方がはるかに簡単だからです。
やる気があれば、次のことができると思います。
- すべてのアセンブリを難読化する
- 動的に読み込まれた XAP を使用する
- 動的に読み込まれた XAP サーバー側を暗号化し、Web サービスによって送信された動的に生成されたキーを使用してクライアント側で復号化します (同じ要求ではありません。また、キーを再利用しないでください。)
攻撃者がコードを取得するのを防ぐことはできませんが、最初の (難読化された) XAP を分析して復号化コードを理解し、キーを取得し、暗号化された (難読化された) 動的に読み込まれた XAP を取得し、復号化し、管理する必要があります。難読化を解除してから、アプリケーションにプラグインする方法を理解してください。HTTPS を使用する場合とは異なります。ここでは、暗号化と復号化のプロセスがアプリケーションで行われるため、firebug や fiddler などのツールが役に立たなくなります。
裾。誰かがあなたのコードを読むのを妨げるものは何もありません。しかし、あなたはそれを彼の時間の価値がないようにすることができます. ここにあるすべてのアイデアを使用する必要はありません。他のアイデアを見つけることができると確信していますが、そのような手段を実装することも時間の価値があることを確認してください。
いずれにせよ、これを書くのはかなり面白かったです:p
XAPファイルを非表示にすることはできません(少なくとも自明ではありません)。しかし、あなたはそれらを難読化することができます。難読化は決定的な答えではありませんが、その始まりであり、かなり優れた保護を提供できます。