1

おそらく少し初心者の質問ですが、とにかくそれを尋ねるつもりです。私はWebフォーム開発者ですが、世話をするためのMVCアプリが与えられ、セキュリティホールの可能性があると思うものを見つけました。雇用主に報告する直前に、自分の考えが正しいかどうかを確認したいと思います。

基本的に、オブジェクトを編集するためのビューがあります(これを車と呼びます)。したがって、オブジェクトには、Make、Model、ManufactureYear、Color、RegistrationNumberが含まれます。

ビューには上記のすべてが表示されますが、編集できるのは色のみです。

問題は、他のプロパティが非表示フィールドのHTMLに書き出され、その後ポストバックされて、データベースにプッシュされる車のオブジェクトにデータを入力するために使用されることです。

私はこれを見て、これらの隠されたフィールドを変更するとどうなるかを考えました、そして確かに、私は今、10年後の製造日を持つ車を持っています...

元の開発者は、これがMVCの動作方法であると言っています...私は新しいです(文字通り2時間のMVC経験があります)ので、現時点ではこれに異議を唱えることはできません。

誰か考えがありますか?誰かがこれをどのように行うべきかアドバイスできますか?私はそれを行う方法(データベースから車を引き出し、ビューが実際に操作できるフィールドのみを更新することになる)も間違っていると言いました...

アドバイスをいただければ幸いです。

乾杯

4

1 に答える 1

1

それは決して「MVC」に固有のものではありません。これは、Webのステートレスな性質や、RESTfulタイプのものすべてとより整合性がありますが、この特定のケースはそれによって正当化されません。更新可能なフィールドの限られたセットのみが必要な場合は、オブジェクトの何らかの形式の識別子(RDBMSの主キーなど)と更新するフィールド(またはコントローラーが残りを破棄する必要がある)のみが必要であるように思われます。 。状態を持たないために制限されるべきフィールドへの恣意的なアクセスを許可してはなりません

于 2012-09-07T17:15:50.857 に答える