0

内部ネットワーク上の企業クライアント Web サーバーでホストされている ASP.Net アプリケーションがあります。

さまざまな既知のライセンス条件 (有効期限/ユーザー数など) を適用したい

キーと値のペアとして用語を含む暗号化された xml ドキュメントを使用し、暗号化されたフラット テキスト ファイルとして Web サーバーに保存することを計画しています。

次に、カスタム セキュリティ Httpmodule を使用して、暗号化されたファイルを復号化し、用語を抽出してメモリ (アプリケーション?) に保存し、アプリケーションの関連領域の各ページ要求中に用語を適用する予定です。

Web アプリケーションのライセンス条項を強制するためのより良い方法はありますか?

4

1 に答える 1

3

私は別の方法を選びました。Httpmodule について心配する必要がないように、データベースの暗号化されたフィールドにライセンス情報を配置するだけでした。SQL Server には EncryptByKey および DecryptByKey 関数があり、暗号化されたデータの取得/書き込みを非常に簡単に行うことができます。また、単純なパスフレーズ キーを使用して、プロセス全体を非常に簡単に管理できるようにしました。私はあなたのアプローチに感謝します - それは本当に非常に賢いです - しかし、あなたは自分自身で人生を少し難しくしすぎたと思います!

セキュリティに関する限り、実際にソース コードを提供しない限り、これは比較的安全です。唯一の欠点は、パスフレーズやその他の暗号化技術を抽出しようとして、コードを逆アセンブルする可能性があることです (これは、Httpmodule アプローチにも当てはまる可能性があります)。ただし、これは私が心配することではありません。私は主にフォーチュン 500 企業と仕事をしており、「分解禁止」条項を含む法的契約を彼らと結んでいるからです。大多数の企業は、追加機能を取得したり、データベースを拡張したりするためだけにこれを行うことで生じる法的危険に賭けようとはしません。一方、何千人もの匿名ユーザーに配布している場合は、話が異なる可能性があります。

更新: SQL Server を使用していない場合は、何らかの形式のコードベースの暗号化を使用して、ライセンス情報を保存/取得することもできます。暗号化クラスが必要な場合は、以前の回答用にシンプルだが非常に強力な AES クラスをアップロードしました。

于 2009-03-10T13:15:47.153 に答える