Rails4のStrong Parametersはコントローラに置かれたバリデータなのか?

まとめました
11
山崎良祐 / Ryosuke Yamazaki @nappa

なるほど、妥当性検査とセキュリティ要件のための検査が自分のなかでけっこうあいまいだったことに気づきましたです。不正な値をDBに突っ込まれることを避けることを主に考えておりました。

2013-07-09 20:38:45
山崎良祐 / Ryosuke Yamazaki @nappa

技術的に正しいことを1つ広めるために、間違ったことが1つ広まってたら意味がないんじゃないですかー

2013-07-09 21:14:15
Youhei Kondou @dw3w4at

逆に ActiveRecord/Model での妥当性検査であり、かつ、それがセキュリティ対策と等価になる場面って、思いつく限りではとても少ないと思います。等価になる例は ActiveRecord/Model で Joe アカウントをはじく validate を実装するぐらい?

2013-07-09 20:34:13
徳丸 浩 @ockeghem

ご指摘に同意します RT @dw3w4at: 逆に ActiveRecord/Model での妥当性検査であり、かつ、それがセキュリティ対策と等価になる場面って、思いつく限りではとても少ないと思います。等価になる例は ActiveRecord/Model で Joe アカウント…

2013-07-09 21:36:28
Youhei Kondou @dw3w4at

@ockeghem あとパスワード単体での強度が足りなくてはじく(n文字未満、aaaaや1234とか)のも、Modelでの妥当性検査かつセキュリティ要件になるケースでしょうか。これをActiveRecordで実装するか外部ライブラリを再利用するかは別の話題になってしまいますが。

2013-07-10 06:20:31
徳丸 浩 @ockeghem

はい。ただ、これは単に要件のチェックと見ればいいと思います。「対策」ではない RT @dw3w4at: @ockeghem あとパスワード単体での強度が足りなくてはじく(n文字未満、aaaaや1234とか)のも、Modelでの妥当性検査かつセキュリティ要件になるケースでしょうか…

2013-07-10 09:15:30
Youhei Kondou @dw3w4at

その新流儀は、 mass assignment 制御の新流儀と答えれば正解だけど、 validation の新流儀では決して無い(なぜならRails3までの流儀は引き続きRails4にもあるから)。そう指摘されてるのを聞かないのか意味を分かっていないのか、なんとかがきって輩は。

2013-07-10 17:54:37
Youhei Kondou @dw3w4at

こんとろーらーでばりでーしょんするのがRails4の新流儀 #もっとも信頼性のない発言したら勝ち

2013-07-10 19:26:27
Youhei Kondou @dw3w4at

http://t.co/y3xggsc5Bm の「根本的な定義のはずだ~異論はないかな?」に異論有り。以下異論2点。

2013-07-11 21:34:56
Youhei Kondou @dw3w4at

異論(1) validation で確かめるものは「アプリケーションの要件にとって妥当か」止まりでよいと考える。(1つづく)

2013-07-11 21:35:07
Youhei Kondou @dw3w4at

(1づづき)「(アプリケーションが乗っかる)システム全体にとって健全か」は当然こちらの方が大事で、何がしかのチェック機構を入れるべきというのはその通りだが、それは validation とは異なる、より重要な機構で実現するもの。

2013-07-11 21:35:21
Youhei Kondou @dw3w4at

異論(2) 「根本的な定義のはずだ~異論はないかな?」センテンス以降が、誰も主張していない「○○だけやれば十分」に対する論旨展開になっている点。(2つづく)

2013-07-11 21:35:33
Youhei Kondou @dw3w4at

(2つづき)この文章書いた人が最初で列挙したリンク http://t.co/A3rG52dkke 先で “validationもDBに制約かけるのも strong parameters で mass assingment 対策もWAF使うのも全部やろう” という例示もあるのにね。

2013-07-11 21:36:37
Youhei Kondou @dw3w4at

一方 http://t.co/y3xggsc5Bm の同意点2点は、入力値のチェックよりも大事なものがある旨とセキュリティは場面場面によって異なる旨ぐらいですかね。

2013-07-11 21:36:51
Youhei Kondou @dw3w4at

ただ元々は validation とは?な論争ですらなくって、《strong parameters の機能を誤解して説明すなや→いえすゆあはいねす》で本来終わる程度のお話が終わっていないだけ。これは他の人も指摘してるっぽい。なので、まだ君や君の言いたい事が出てくる段階ではないよ。

2013-07-11 21:37:41
Youhei Kondou @dw3w4at

以上RTしたとおり、"strong parameters はなんとかがきさんが主張してるような役割じゃないよ" というのが本論。バリデーションとは何ぞやという高尚な議論の段階にまで至ってないのに、なんで前記事の人はその議論だと思いこんで異論は無いかね?とか書いちゃったんでしょう…

2013-07-11 21:44:32