セキュリティの理由から、params[:id]
などのパラメータをURLの(eg. /?id=<script>console.log(1)</script>)
のように細いテンションのレールに指定すると、安全のためにh3 = params[:id]
のようなパラメータを呼び出すことが安全かどうかを知りたいだけです。slamsテンプレートでparamsを呼び出しても安全ですか?
paramsは自動的にエスケープまたはサニタイズされていますか?
ありがとうございました。
セキュリティの理由から、params[:id]
などのパラメータをURLの(eg. /?id=<script>console.log(1)</script>)
のように細いテンションのレールに指定すると、安全のためにh3 = params[:id]
のようなパラメータを呼び出すことが安全かどうかを知りたいだけです。slamsテンプレートでparamsを呼び出しても安全ですか?
paramsは自動的にエスケープまたはサニタイズされていますか?
ありがとうございました。
これは実際にはコンテキストに依存しますが、一般的には、ビュー内で生のパラメータを直接レンダリングすることはアンチパターンです。 Paramsは本当にコントローラーの関心事です。予備処理、検証、またはサニタイズを行わずに、ビュー内で未処理のパラメータをレンダリングしたい場合は考えられません。
Params(他の値と同様)はHTMLビューで墨塗りされますが、ユーザーがここで必要な値を提供できる可能性があるので、脆弱性や境界条件がどのようなものかを尋ねる価値があります。
最後に、これは絶対的なルールではありませんが、プライマリIDはデータベースの懸念事項であると強く主張しています。場合によっては、それらをユーザーまたは外部に公開することは危険です。その理由は、プライマリキーが自動インクリメントである(通常は何レコードあるかなど)、データベースに関する情報が漏れているためです。このような場合、主キーを隠すかハッシングする価値があります。