2012-09-07 48 views
1

可能是一個新手問題,但我仍然會問這個問題。 我是一個webforms開發人員,但是我得到了一個MVC應用程序來照顧和發現我認爲可能是一個安全漏洞,只是想檢查我的想法是在我將這個與我的僱主掛起來之前。MVC編輯實體 - 安全影響

基本上我們有編輯對象(說它是轎車) 所以對象包含品牌,型號,ManufactureYear,顏色,RegistrationNumber

的視圖顯示所有上述的觀點,但只允許顏色以被編輯。

問題是,其他屬性被寫出到隱藏字段中的HTML中,然後將其返回並用於填充通過數據庫傳遞的汽車對象。

我看到這一點,並認爲,如果我改變這些隱藏字段會發生什麼,果然,我現在有一個生產日起10年後的未來汽車...

原開發說,這是MVC的工作方式...我新(腸胃有2個小時的MVC經驗),所以現在不能競爭。

任何人有任何想法?任何人都可以建議這應該怎麼做 - 我也告訴我,我的做法(這將從數據庫中拉車,只更新視圖實際可以操縱的字段)也是錯誤的...

我喜歡諮詢!

乾杯

回答

1

這不是「MVC」固有的。它更符合Web的無狀態特性和RESTful類型的東西,但這種特殊情況並不合理。這聽起來像是你只想要一個有限的可更新字段集合,你應該只有對象的某種形式的標識符(比如RDBMS中的主鍵)以及你想要更新的字段(或者控制器應該放棄其他字段) 。您當然應該而不是允許任意訪問應該限制追求不攜帶狀態的字段。

+0

感謝馬特,這幾乎是我的想法。 我期待着看看有沒有其他人評論過其他評論,但林肯定你說得對,因爲你所說的是我認爲需要證實的。 謝謝! – D3vy

+0

馬特是正確的,更新的控制器應該只使用允許更新的字段,它應該爲其他字段(浪費的IMO)提取數據,或者只發出SQL語句更新有問題的字段。 – BlackICE

+0

這可能有所幫助:http://stackoverflow.com/a/11636453/264607 – BlackICE