1

私は、組織内の2〜3人だけが基本的に使用する非常に基本的なRoRアプリを開発しています。時々RoRアプリからJSONオブジェクトを要求する必要がある他のアプリ(Perlで書かれた)がいくつかあります。このリクエストへの不正アクセスを防ぐ必要がありますが、自分のアプリだけがアクセスをリクエストするので、特別なことは何も必要ありません。POSTを要求するアプリに事前に定義された「パスワード」を要求し、そのパスワードがPOST要求で指定された場合にのみ、RoRアプリにJSONオブジェクトで応答させることは(この目的のために十分に)安全ですか?これを達成するための簡単で安全な方法について、他に何か提案はありますか?私はRoRにとても慣れていません。

ありがとうございました!ジェフ

4

2 に答える 2

1

シンプルでもう少し安全なのは、パスフレーズと日付を含むsha1を使用してキーを作成することかもしれません。そうすれば、キーは毎日変更されます。

何かのようなもの:

key = Digest::SHA1.hexdigest("secret#{date}")

お役に立てれば。

于 2012-08-08T15:14:42.377 に答える
1

はるかに優れたソリューションを実装できますが、その方法は非常に効果的です。アプリでSSLを使用するだけで、パスワードの送信を非表示にできます。これにより、多くのWebサービスよりも安全になります(多くのサイトは引き続きクレデンシャルをプレーンテキストで送信します)。また、クレデンシャルはクライアントとサーバー間での使用に制限されているため、ブルートフォースパスワード攻撃のリスクを制限するために、必要な限りクレデンシャルを作成できます。

もっとエキゾチックなものに行きたい場合は、リクエスト全体のハッシュと秘密鍵である署名をURLパラメータに追加するgem'api_auth'を使用することをお勧めします。gemはクライアントで署名を生成し、サーバーで署名を認証します。これは非常に強力なソリューションです。実際、URLとパラメータ自体をだれにも見られたくない場合を除いて、SSLは必要ありません。ただし、署名は正確なリクエストとrequest.ipを含むすべてのリクエストパラメータに固有であるため、発信者以外はリクエストを使用できません。補足-署名はリクエストヘッダーに追加されるため、URLやコンソールログに何も違いはありません。

于 2012-08-08T16:05:47.023 に答える