asp.net core webApi 参数保护
Intro
asp.net core data protection 擴展,基于?IDataProtector?擴展的數據保護組件,自動化的實現某些參數的保護
ParamsProtection
ParamsProtection?是為了保護 asp.net core webapi 項目的某些參數而設計的,也可以用來做一定程度上的反爬蟲。
GetStarted
安裝 nuget 包?WeihanLi.DataProtection
通過示例項目查看更多詳細信息
跑起來示例項目,你可以直接在 sample 項目下運行?dotnet run?命令,在瀏覽器中訪問?/api/values?路徑,你會得到類似以下的響應結果
原來的業務代碼里你什么都不需要做,還是直接返回原來的內容即可,原來的返回內容如下:
因為在啟動的時候已經設置了?id?參數應該被保護,所以當你訪問?/api/values/{id}?這個地址的時候,如果沒有設置?AllowUnprotectedParams?為?true?的話,直接使用原始的?int?類型的 id 去訪問就會得到一個 4xx(默認是412) 狀態碼的響應,如果用從?/api/values?返回的 id 的值去訪問就會正常的拿到響應。
除此之外你可以設置被保護的值的過期時間,通過設置一個比較短的過期時間來一定程度上的反爬蟲,有個不太友好的地方就是可能會一定程序上的影響用戶體檢,如果用戶打開一個頁面長期沒有操作就可能會導致某些操作可能會失敗,需要用戶重新操作。
你也可以是?POST?或?PUT?請求中使用被保護的值,如果被保護的值已經過期,你會從服務得到一個 4xx(默認 412) 的響應。
More
你可以設置更多參數來更適合你的使用
你可以改變一些值來改變參數保護模式:
設置?Enabled?為?false?以禁用參數保護
修改?ProtectorPurpose?的值以改變?DataProtector?的 purpose
設置?AllowUnprotectedParams?為?true?以允許原始參數的訪問
設置?InvalidRequestStatusCode?的值來改變不合法參數訪問時響應的 Status Code
修改?ExpiresIn?的值以改變已經保護的參數的值的過期時間
設置?ProtectParams?的值來指定要進行參數保護的參數名稱
Contact
Contact me:?weihanli@outlook.com
原文地址:https://www.cnblogs.com/weihanli/p/webapi-params-protection.html
.NET社區新聞,深度好文,歡迎訪問公眾號文章匯總 http://www.csharpkit.com
總結
以上是生活随笔為你收集整理的asp.net core webApi 参数保护的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 通过Microsoft Learn进行学
- 下一篇: 让 .Net 更方便的导入导出Excel