[英]How do I secure my web service apart from checking session variable for NULL?
我編寫了一個Web服務,基本上將數據插入到中央數據庫中,並且預計將由來自多個系統的多個客戶端使用。
它的工作原理但問題是它可以被任何人訪問,因此很容易被任何人使用,即任何人都可以通過輸入數據或任何東西來發送垃圾郵件。
一種方法是檢查Session變量,但是我如何知道使用系統的客戶端的會話變量的名稱,或者他可能不是那種方式進行身份驗證?
那么我該怎么做才能確保安全呢?
[WebMethod(EnableSession= true)]
public int InsertEngineeringData(string FunctionalLocation, string EqptType, string WINFileNo, string ComponentTagNo)
{
try
{
if (Session["User"] != null)
{
}
int EngineeringDataID = 0;
EngineeringDataDAL EngineeringDataDAL = new Vail_PlantWebApi.EngineeringDataDAL();
EngineeringDataID = EngineeringDataDAL.InsertEngineeringData(FunctionalLocation, EqptType, WINFileNo, ComponentTagNo);
return EngineeringDataID;
}
catch (Exception ex)
{
throw ex;
}
}
如果它是一個asmx webservice,那么使用Crocoder發布的鏈接或其他快速方式,如果它有效,你可以嘗試[Authorize]屬性,雖然我不確定這是否適用於你正在使用的內聯web方法,我'我們只看到它在WebAPI中使用過。 在ASP.NET MVC中授權屬性
一個更加健壯的方法肯定會有效,你可以在Users表中添加一個名為'CurrentSessionID'的列,另一個名為'LastLoginDateStamp'的列。如果你有一個有效的用戶,你可以在每個登錄請求中更新他們的會話和一個日期戳。 然后當用戶點擊api時,你比較會話並確保它沒有超過你決定的最后一次登錄的有效閾值,例如24小時。
之后還有很多工作要做,但那是基本的想法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.