所以我一直很高興地構建我的ASP.Net MVC 4應用程序一個月。我有適當的安全模型,用戶可以登錄,並且安全信息正在存儲在用戶會話中以供後續頁面請求使用。這一切都很好。然後我實現一些Ajax調用來獲取更多數據到頁面中。我通過調用Web API接口來完成此操作。在Web API調用中,我嘗試訪問Session並查看Session的值爲null。現在我知道Web API應該是「無狀態的」。應該傳入一個web api調用的所有參數。但是,如果這些參數中的某些參數很敏感,並且在進行ajax調用時無法從客戶端傳遞出去呢?ASP.Net MVC 4,Web API和傳遞參數安全地
我讀過關於黑客訪問WebAPI中的會話。我寧願不這樣做,並違反web api的租戶。 ? 那麼你是否將這些信息存儲在數據庫中並在web api調用中將其取出?看起來像一個PITA來做到這一點。 那麼如何保持某些參數在進行web api ajax調用時的安全? 還是你打破了,只是獲得會議?
我明白你在說什麼,可以用一堆額外的工作來完成,首先使用一個不折不扣的密鑰將會話數據寫入數據庫,然後將數據拉回到Web中使用相同的密鑰進行api調用。當我想要的數據已經在會話中時,看起來好像過度殺人。爲什麼數據庫的R/W使其無狀態,但是會話的R/W不是? –
矯枉過正會通過數據庫中已有的數據傳遞數據。一個API必須是無狀態的,如果你想要所有的方法耦合到一個用戶會話,然後使用實體框架而不是API模型 – Eamon
@MikeMurphy當然你的數據保存在數據庫中,並且可以通過應用程序發送的ID進行訪問到Web API,所以你可以從你的API的數據庫中加載這個備份?無論如何,在Session中保存這些數據是非常糟糕的做法。 –