2017-02-21 5 views

答えて

2

セキュリティ上の理由から、.permitの全体のポイント。 Rails 3.0では、Railsはパラメータの一括割り当てに関してホワイトリストアプローチを使用しています。これは基本的にはすべてのパラメータがデフォルトで許可されておらず、どのパラメータを一括割り当てできるかを手動で許可する必要があるということです。

これは、ハッカーが特定のパラメータを使用できないようにします。つまり、管理者が存在し、ブール値を受け入れるかどうかを確認するadminパラメータがある場合、ハッカーはadmin = trueというパラメータを書き込むだけです。特定のコンポーネントを作成、更新、削除するアプリの能力に潜在的にアクセスすることができます。

これを防ぐための鍵は、強力なパラメータを使用して、一括割り当てするパラメータのみを許可することです。そうすることで、ハッカーが使用したくないパラメータにアクセスできるようにする潜在的な落とし穴を避けることができます。 .requireと組み合わせて.permitでこれを行います。

+0

しかし、どのように役立ちますか? adminパラメータを使用していない場合は、とにかくデータベースにどのように入りますか? –

+1

強力なパラメータは、あなたがadminパラメータのようなものを使用しているという仮説的な状況を防ぐことです。強力なパラメータは、必ずしも100%のケースで使用する必要はありませんが、Railsでは、ハッカーが操作できるパラメータを持っている場合に備えて、デフォルトで使用することをお勧めします。 SQLインジェクション、クロスサイトスクリプティングなど、ハッキングされる可能性のある他の多くの方法がありますが、 '.permit'などの強力なパラメータを使用すると、パラメータの使用を操作することでハッキングされることがありません。 – the12

関連する問題