2016-03-29 11 views
2

セキュリティの理由から、params[:id]などのパラメータをURLの(eg. /?id=<script>console.log(1)</script>)のように細いテンションのレールに指定すると、安全のためにh3 = params[:id]のようなパラメータを呼び出すことが安全かどうかを知りたいだけです。slamsテンプレートでparamsを呼び出しても安全ですか?

paramsは自動的にエスケープまたはサニタイズされていますか?

ありがとうございました。

答えて

0

これは実際にはコンテキストに依存しますが、一般的には、ビュー内で生のパラメータを直接レンダリングすることはアンチパターンです。 Paramsは本当にコントローラーの関心事です。予備処理、検証、またはサニタイズを行わずに、ビュー内で未処理のパラメータをレンダリングしたい場合は考えられません。

Params(他の値と同様)はHTMLビューで墨塗りされますが、ユーザーがここで必要な値を提供できる可能性があるので、脆弱性や境界条件がどのようなものかを尋ねる価値があります。

最後に、これは絶対的なルールではありませんが、プライマリIDはデータベースの懸念事項であると強く主張しています。場合によっては、それらをユーザーまたは外部に公開することは危険です。その理由は、プライマリキーが自動インクリメントである(通常は何レコードあるかなど)、データベースに関する情報が漏れているためです。このような場合、主キーを隠すかハッシングする価値があります。

関連する問題