簡體   English   中英

Java設計方案

[英]Java Design Scenario

我在Java中有一個函數,該函數接收SOAP請求(一個Java對象)並驗證請求參數。 驗證后,此請求將進一步用於業務邏輯。 在驗證請求時,如果函數發現無效的參數,它將嘗試對其進行更正並更改其值。 這就是說,作為函數參數接收的請求對象將被修改。 該函數無法創建新請求並用有效參數填充該請求,然后返回該請求,因為該函數已經返回了響應對象。

因此,現在的問題是,更改作為輸入參數的對象的狀態是否正確? 我認為不是,因為調用函數不知道傳遞的對象狀態會被修改,除非我們在java doc中提到它,並且調用者讀取時要小心。

有備用嗎?

我建議創建一個“已驗證” /“已校正”參數的映射,並將其添加為請求屬性。 您可以將此對象與響應一起發送,以使調用方可以看到實際處理了哪些數據。

如果可以避免,我不會將請求對象發送給邏輯功能,而只會發送經過驗證的數據。

另外,請記住,嘗試“更改”請求參數是棘手且危險的。 入侵系統的一種常見方法是發送意外的輸入,然后查看系統是否會對其進行處理(SQL注入,將腳本作為純文本傳遞...)。

暫無
暫無

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

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