簡體   English   中英

黑客可以更改模型屬性嗎? 春天,Java

[英]can model attributes be altered by a hacker? Spring, Java

在我的 approute /edit RequestMethod.GET

我將值 customerId 放入模型 model.addAttribute("customerId",customerId);

然后視圖(form method="POST")將數據發送到 approute /edit RequestMethod.POST

我在 post approute 中需要 customerId,所以在表單中我有一個隱藏的 customerId 輸入。 我發現我什至不需要隱藏的輸入。 (實際上,如果我使用隱藏輸入,它會被忽略。POST approute 將獲取我從 GET approute 傳遞給視圖的原始 customerId)

假設用戶有權編輯 customerId 36 但沒有編輯 customerId 45。customerId 36 被發送到視圖。 黑客是否有可能將 customerId 更改為 45 並編輯他無權編輯的內容,或者我可以確定 customerId 仍然是 36? 當我使用隱藏輸入時,我在 post approute 中進行了檢查,以檢查用戶是否有權編輯該客戶。 現在我不確定是否有必要。

基本上,如果我沒有將它作為隱藏輸入,我不知道 post approute 從哪里獲取 customerId。 它已加載到模型中,那么模型是否存在於服務器端並且是安全的,還是從用戶發送回 customerId 並且他可以操縱它?

如果您所說的“黑客”是指對應用程序具有合法訪問權限但試圖對數據進行一些惡意修改的用戶...

在服務器端,您應該期望您的用戶可以將請求中的任何數據發送到您的應用程序。 這些不僅可以更改您之前發送的數據,而且用戶可以向服務器發送任何數據,即使他之前沒有從服務器收到此類數據。

在服務器端,你不應該關心之前發生了什么,你發送給用戶什么數據,數據如何存儲在客戶端,一些元素如何在客戶端互操作等。你應該在每個請求中識別用戶並檢查這是否用戶有權對請求的數據執行請求的操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM