※本サイトで紹介している商品・サービス等の外部リンクには、アフィリエイト広告が含まれる場合があります。
【大事】Strong Parameterについて
安全なアプリケーションを作るためのセキュリティに関係する概念
- 権限を操作して、ユーザーの情報を抜き出す・流出させる
- アプリケーションに保存されたデータが消えてしまう
アプリを作るうえで、セキュリティを担保しないといけない
params.require(:◯◯).permit(:△△, :□□)
- フォームからサーバーにデータ(parameter)を送る(params)
- フォームのhtmlは、ユーザーが自由に変更できてしまう
例)「content」じゃなくて「body」にしてparamsを改変する 等 - サーバーがなんでも保存してしまうのは危険
- データを変更されても保存しないようにしておく
例)「title」と「content」しか保存しないよ!
paramsの状態
{
article: {
title: "",
content: ""
}
}
strong parameter
params
.require(:article)
.permit(:title, :content)
- 「article」キーが必要(requireは「求める」の意味)
- 「title」と「content」のみ保存する(permitは「許可」の意味)
キーを指定し、保存する項目を限定することで安全性を高める
Strong Parameterはprivate
の中に書くこと
↓ app/controllers/articles_controller.rbに追加する
private
def article_params
params.require(:article).permit(:title, :content, :eyecatch)
end
article
を更新するから、「article_params
」と書く- 「(更新の対象)_params」と名前をつけるのがルール
#DAY12