簡體   English   中英

除了檢查會話變量是否為NULL之外,如何保護我的Web服務?

[英]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.

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