私は、長年の Java 経験を持つ新米の Ruby/Rails 開発者です。この「セキュリティ」の質問は、Rails ではなく Ruby に固有のものです。そのため、ほとんどの Rails のセキュリティに関する質問は Web に関するものであるため、答えを見つけるのが困難でした。
Java 開発者として、Effective Java を何度か読みました。その本の重要なポイントの 1 つは、クラス内のデータとメソッドを悪意のあるユーザーから保護することです。つまり、コードをできるだけ非公開にし、不変クラスを使用し、不変オブジェクトへの参照を返すときに防御コピーを使用します。final キーワードも使用できます。
しかし、Ruby ではすべてがオープンです。確かにメソッド/データを非公開にすることはできますが、Ruby API の消費者として、メソッドの独自のバージョンを作成し、単純に (実行時またはコードで動的に) クラスにアタッチすることを妨げるものはありますか? API? 効果的な Java で説明されているすべてのセキュリティは、Ruby にはまったく適用されないようです。これは Java からの単なる考え方の変化ですか? これは、Ruby や他の類似言語の「欠陥」ではありませんか?