5

共有サーバー上のGodaddyでホストされるWebアプリケーションを作成しました。取引にペイパルを使用する予定ですが、問題が発生します。

この時点で、クレデンシャル(ペイパルの電子メールとパスワード)はハードコーディングされています。これは、私が理解している限り、最悪の解決策です。私が知っている他の唯一のオプションはweb.configファイルにありますが、これも特に安全ではないようです。

必要なセキュリティを提供し、共有ホスト環境で機能する方向を教えていただけますか?

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

4

5 に答える 5

3

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

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

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

ただし、選択した方法に関係なく、ハッカーがアカウントに侵入できれば、パスワードや証明書ファイルを取得できます。

ps 「API パスワード」、「API 署名」、および「API 証明書」という用語は、PayPal API リファレンスおよび開発者マニュアルで言及されているものであることに注意してください。

于 2010-01-18T07:20:57.290 に答える
2

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

実装は、暗号化メカニズムが何であれ、実行できます。次に、重要な観点から、さまざまなレベルのセキュリティでそれを保存するためのいくつかのオプションがありますが、これは実際にあなたがこれをどの程度「妄想的」であるかに依存します。

  1. 暗号化キーをアプリ設定としてweb.configに保存するだけです(安全性は最低ですが、web.configへのアクセスは制限されており、DBパスワードなどの他の機密情報はすでに存在します)
  2. web.confgのカスタム構成セクションを作成し、そこに値を暗号化して保存します。(これにより、キーがプレーンテキストで読み取れないようになるため、より安全になります)
  3. 暗号化キーをデータベーステーブルに格納し、クエリされるテーブルが単一のユーザーアカウントのみになるように制限します。(あなたの考えにもよりますが、これは最もポータブルなソリューションかもしれません。)
于 2009-09-03T14:34:12.467 に答える
0

サーバーにアクセスできないため、コマンドを実行して、コードを使用して web.config のセクションを暗号化する必要があります。これを行うには、単純な Web ページを作成し、ページの読み込み時またはボタンのクリック時にそれを実行します。以下は、実行する必要があるコード ブロックです。Microsoft から取得したソース ( 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 接続文字列と web.config の stmp 情報を介して、コードとのリンクを見つけました。

オプション 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)
于 2011-12-21T18:47:01.407 に答える
0

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

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

于 2009-09-03T15:40:43.750 に答える
0

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

  1. web.config ファイルを暗号化する

  2. 暗号化を使用してデータベースに保存

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

于 2009-09-03T17:07:17.300 に答える