2009-09-03 9 views
5

共有サーバー上のGodaddyでホストされているWebアプリケーションを作成しました。自分の取引にpaypalを使用する予定です。問題が発生します。共有ホストのWebアプリケーション(asp.net)にPayPalの資格情報を保存する

この時点で、資格情報(paypalの電子メールとパスワード)はハードコードされています。これは私が最悪の解決策を理解している限りです。 私が知っている唯一の他の選択肢はweb.configファイルです。これは特に安全ではないようです。

あなたは、共有ホスト環境で希望するセキュリティと作業を提供する方向を指摘できますか?

よろしく アレクサンドロス

答えて

2

共有ホストでは、少なくとも一見最も簡単な方法は、パスワードを暗号化し、データベースに保管することです。

暗号化の仕組みがどのようなものでも実装できます。そうすると、鍵となる観点から、さまざまなレベルのセキュリティを備えた、さまざまなストレージオプションを用意しています。これは実際にどのように「妄想」になっているかによって決まります。

  1. 単に
  2. アプリの設定としてweb.configファイル内の暗号化キーを保存する(最も安全性が、web.configファイルへのアクセスが制限され、他の敏感なものは、このようなDBパスワードなど、すでにそこにある)を作成しますweb.confgのカスタム設定セクションを開き、その値を暗号化して保存します。
  3. 暗号化キーをデータベーステーブルに格納し、照会するテーブルを1人のユーザーアカウントに限定して制限します(これは、プレーンテキストでキーを読むことができないため、より安全です)。 (あなたの考えによるが、これはもっとも移植性の高いソリューションかもしれない。)
+0

を? – Tyrsius

+0

これにはいくつかのオプションがあります。web.config(MachineKey)にあるキーを使用するか、独自のキーを作成して暗号化されたweb.configオプションに入れることができます。 –

+0

@Tyrsius - 私はあなたにいくつかの考えを与えるためにいくつかの詳細とオプションを加えました。 –

0

web.configファイルに保存してからweb.configファイルを暗号化できますか?

少なくとも、web.configで個別に暗号化しますか?

0

次のオプションがあると思います。

  1. 暗号化web.configファイル

  2. データベースに保管して暗号化

  3. を使用してクラスライブラリを作成し、この情報を保持するクラスを作成します。今度は 共有環境では、Binフォルダ内にdllとして追加されます。

+0

1.私はそれができることを知っています。私は共有されたホストでそれができることを確信していません。 2と3.デコンパイルの問題が発生します。妄想してるの? –

+0

私のお気に入りのフレーズのひとつ:あなたは何をしていますか、他の人は元に戻すことができます。あなたが何をしているかわからない。誰かがそれに努力をすると、彼はそれを元に戻すことができます。そして今、あなたは以前より妄想的であり、落ち着いていると思う:私の情報はクラッカーの注目を集めるために魅力的ですか?そうでない場合は、web.config内の情報を暗号化するだけで十分です。 – rcdmk

3

選択肢は次のとおりです。

  1. APIパスワード+ API署名。あなたは をどこかにプレーンテキスト または何か解読可能なもの、おそらくそれを ファイルまたはデータベースとして保存する必要があります。

  2. APIパスワード+ API証明書。 ホスティングサービスプロバイダが、 ユーザーが 個の他のサーバー(つまり、 PHPのCURLOPT_SSLCERT)にSSL接続を確立できるようにするかどうかを確認する必要があります。可能であれば、 を使用してください。

ただし、選択した方法にかかわらず、ハッカーがアカウントに侵入すると、パスワードまたは証明書ファイルを取得できます。

P.S. 「APIパスワード」、「API署名」、および「API証明書」という用語は、PayPal APIリファレンスおよび開発者マニュアルで参照されている用語です。

+0

API証明書にAPI署名がなく、その逆の場合もあるため、第2のオプションから「署名」を取り除いて削除しました。 – Robert

+0

@Robert編集していただきありがとうございます。 :) – shinkou

0

サーバーにアクセスできないので、コードを使ってweb.configのセクションを暗号化するコマンドを実行する必要があります。これを行うには、シンプルなWebページを作成し、ページの読み込み時またはボタンのクリック時に実行します。以下は実行する必要のあるコードブロックです。マイクロソフト(http://msdn.microsoft.com/en-us/library/system.configuration.sectioninformation.protectsection.aspx)から入手したソースからわずかに変更されています。しかし、...このコードは実際に私のために働いていませんでした。コードが正しくないのではなく、自分のアカウントにRsaキーストアの権限がないため、結果が異なる場合があります。これはそのオプション2.

' Get the current configuration file.' 
    Dim config As System.Configuration.Configuration = Web.Configuration.WebConfigurationManager.OpenWebConfiguration(Nothing) 

    ' Get the section.' 
    Dim section As AppSettingsSection = CType(config.GetSection("appSettings"), AppSettingsSection) 

    ' Protect (encrypt) the section.' 
    section.SectionInformation.ProtectSection("RSAProtectedConfigurationProvider") 

    ' Save the encrypted section.' 
    section.SectionInformation.ForceSave = True 
    config.Save(ConfigurationSaveMode.Full) 

信用のために読んで動作しない場合:私はNeed Encrypted connection string and stmp information in the web.configを経由して、コードとそのリンクを発見しました。

オプション2:セキュリティ上の理由から、まだマシンキーを使用したいので、誰かがweb.configファイルをダウンロードして管理しても、設定を復号化することはできません。これを行う1つの方法は、手動でマシンキーを使用してすべての設定を暗号化し、使用するたびに暗号化を解除するか、アプリ起動時にキャッシュに保存することです。暗号化に

、あなたは、このようなコードを使用することができ、アプリキー値復号化:あなたは、アプリケーションが安全でない位置にキーを離れることなく、パスワードを使用することができますようにキーを保存するにはどうすればよい

Dim encryptedString As String = Convert.ToBase64String(ProtectedData.Protect(System.Text.UTF8Encoding.UTF32.GetBytes("Testing"), Nothing, DataProtectionScope.LocalMachine)) 
    Dim decryptedString As String = System.Text.UTF8Encoding.UTF32.GetString(ProtectedData.Unprotect(Convert.FromBase64String(encryptedString), Nothing, DataProtectionScope.LocalMachine)) 

    Response.Write(encryptedString + " - " + decryptedString) 
+0

私は最初の方法(コードをC#に翻訳する)を手に入れることができず、いくつかの異なる方法で異なるエラーが発生しました。 2番目の方法は、ホスティングマシンが変わらないことに依存するように見えます。共有ホストでは、これは安全ではないと思われますか? – Tyrsius

+0

あなたは一週間で唯一の新しい答えです、あなたはデフォルトで賞金を得るように見えます。 – Tyrsius

+0

@ティリウス - ちょっと遅れていますが、あなたの期待に応える人がいなければ恩恵を与える必要はありません。質問に戻る:ホスティングマシンが変更できると仮定している場合、別のappSettingのように、アクセス可能なキーに暗号化キーを格納する必要があります。私はこれを避けようとしていました。なぜなら、誰かがあなたのweb.configをダウンロードして、あなたのPayPal情報を解読するために鍵を使用できるようになったらどうなるかということです。 ウェブホストに連絡して、ホストを変更するかどうかを質問してみませんか。多分それはあなたが心配する必要があるものではないでしょう。 – Peter

関連する問題