Как защитить свой веб-сервис, кроме проверки переменной сеанса на NULL? - PullRequest
0 голосов
/ 23 апреля 2019

Я написал веб-сервис, который в основном вставляет данные в центральную базу данных и, как ожидается, будет использоваться несколькими клиентами из разных систем.

Это работает, но проблема в том, что к нему может получить доступ любой человек, что делает его уязвимым для использования кем-либо, т. Е. Любой может спамить путем ввода данных или чего-либо еще.

Один из способов - проверить переменную 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;
            }
        }

1 Ответ

0 голосов
/ 23 апреля 2019

Если это веб-сервис asmx, то используйте ссылку, опубликованную Crocoder, или другой быстрый способ, если он работает, вы можете попробовать атрибут [Authorize], хотя я не уверен, будет ли это работать с используемым вами встроенным веб-методом. Я только видел, как он используется в WebAPI. Атрибут авторизации в ASP.NET MVC

Более надежный способ, который определенно сработает, - это добавить в таблицу Users столбец с именем «CurrentSessionID», а другой - «LastLoginDateStamp». Для каждого запроса входа в систему, если у вас есть действительный пользователь, вы обновляете его сеанс и отметку даты. , Затем, когда пользователь нажимает на API, вы сравниваете сеанс и убедитесь, что он не превысил то, что вы считаете допустимым порогом для последнего входа в систему, например, 24 часа.

После этого будет много работы, но это основная идея.

...