8月6日:mass assignmentの脆弱性とストロングパラメーターとプライベートメソッド
こんばんは。
今日は朝1時間、夜1時間、合計2時間勉強しました。
ちょっとhtmlいじってみた。
間違ってることあったら教えてもらえると嬉しいです。。
【mass assignmentの脆弱性】
- テーブルに対してデータを送信する時に、意図しないデータを勝手に書き換えられちゃったりすること。
- 例えば、「名前」と「メールアドレス」だけ入力するフォームがあったとして、デベロッパーツールとかcurlとかで意図的にキーを書き換えて「パスワード」とかを指定してデータ送信して、書き換えできちゃうこと。
【ストロングパラメーター】
- ↑の脆弱性を回避するのが、ストロングパラメーター。
- 「これしか受け付けません!」っていうキーを指定する。
def post_params
params.permit(:キー名, :キー名)
end
- ストロングパラメーターはプライベートメソッドとしてコントローラーに定義する。
【プライベートメソッド】
- コントローラーで「private」って書いた下に定義するとそうなる。
- これはクラス外から呼び出せないらしい。
- これのメリット
- いらんとこで呼び出すエラーを防げること
- private以下は気にしなくていいので可読性が向上すること
ふーん・・・