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