2

リモートサーバー(unix)にSSHで接続し、コマンドライン処理を実行する必要があるRailsアプリがあります。セキュリティについてはよくわからないので、アドバイスを探しています。現在、コントローラーは、パラメーターハッシュ(ハッシュされていないなど)にパスワードを指定して、ビューから送信を受信します。次に、Net :: SSH gemを使用してリモートサーバーにSSHで接続し、処理を行います。これはあらゆる種類の安全ではないようです。私たちの考えは次のとおりです。

  • SSH経由で公開鍵認証を設定するため、pwは必要ありません(ユーザー数が少ないため、これを設定しても問題ありません)

また

  • ビューでパスワードをハッシュし、コントローラーでデコードしてから、sshコマンドを呼び出します

また

  • ビュー内のpwをハッシュしてソルトしますか?(これがどのように機能するかは本当にわかりません、ただのアイデアです)

記事や説明へのリンクは大歓迎です。ありがとう!

4

2 に答える 2

0

公開鍵認証を使用すると、WebサーバーとSSH接続先のサーバーの間で認証を行うだけです。したがって、私があなたのレイアウトを理解していれば、ページにアクセスする人は誰でもパスワードを入力する必要はありません。郵便でパスワードを渡す場合は、次のようにログからパスワードを簡単にフィルタリングできます。

filter_parameter_logging :password

アプリケーションコントローラで。次に、それはメモリに渡されるだけで、静的な場所には保存されません。ただし、SSLを使用していない場合は、JavaScriptを介してビューでハッシュとソルトを実行してから、コントローラーでデコードすることをお勧めします。実装がかなり簡単な追加のセキュリティ対策に対しては、絶対にお勧めしません...

編集:Rails3でパラメーターをフィルター処理する方法は次のようになります

config.filter_parameters += [:password]

config/application.rbにあります

于 2012-12-06T20:10:59.337 に答える
0

私はあなたの最初のオプションである公開鍵認証に投票します。人々が知るために必要なパスワードは少ないほど良いです。フォームがHTTPS(SSL)で表示されていない限り、そのパスワードはやや安全ではなく、@ Scott Sが彼の回答で指摘しているように、フィルターをかけない限り、ログなどの予期しない場所に実際に表示されます。

sshで公開鍵認証を設定する最も一般的な方法は、空のパスフレーズを持つ鍵を使用することです。より安全な方法はssh-agent、サーバー自体が十分に保護されている限り(特に、要求元のサーバーの秘密鍵)、おそらく必要ないものを使用することです。

于 2012-12-06T20:26:59.087 に答える