2009-03-10 4 views
0

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

私は、キー/値のペアとして用語を含む暗号化されたXML文書を使用して、Webサーバー上に保管することを計画しています

(ユーザーなどなどの賞味期限/番号)様々な既知のライセンス条件を強制したいです暗号化されたフラットテキストファイルです。

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

Webアプリケーションのライセンス条項を適用するためのより良いアプローチはありますか?

+0

暗号化されたxmlファイルは顧客のウェブサーバー上に置かれ、内部企業のユーザーがウェブサイトにアクセスするたびにライセンスの確認が行われます。 –

+0

それは正しいです。またはn回ごとのリクエスト? 1000リクエスト/ヒットごとにそう言ってください。 Mark Brittinghamがコメントしたように、それは残忍かもしれません。私は実際に何らかの理由ですべてのリクエストをチェックする必要があったのですが、データベースよりもフラットファイルをヒットするでしょうか? – Konrad

+0

他の用語は、例えば(オブジェクトの数の制限...ユーザーはオブジェクトを動的に作成/削除することができます)です。もう1つの例は、1か月あたりのセッション制限数および/または1か月あたりの最大要求数です。 したがって、ペイパーユースモデルです。ありがとうございます。 – Konrad

答えて

3

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

セキュリティに関しては、実際にソースコードを提供していない限り、これは比較的安全です。唯一の欠点は、パスフレーズやその他の暗号化技術を抽出するためにコードを分解する可能性があることです(これはHttpmoduleのアプローチにも当てはまるかもしれません)。これはではなくですが、私は大部分がFortune 500企業と仕事をしているので、私は心配しています。私は「解体しない」という句を含む法的な約束をしています。大多数の企業は、特別な機能を追加したり、データベースを拡張したりするために、これを行うだけで法的な危険にさらされることはありません。一方、他の何千もの匿名ユーザーに配布する場合は、別の話かもしれません。

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

+0

私はRijndael対称鍵アルゴリズムを使用していました。私はAESクラスのURLフレンドリーが好きです。 – Konrad

+1

はい - 私の設計目標は、A)簡単な文字列から文字列への変換、およびB)URLを介して暗号化された情報を送受信する必要があるため、URLの使いやすさです。 URLの処理では、URLのコピーが機能しないように、日付と時刻も常に暗号化します。あなたが私の答えが好きなら、アップヴォートが役立ちます! –