Проблема впрыска - PullRequest
       9

Проблема впрыска

0 голосов
/ 27 апреля 2011

У меня есть страница HttpHandler, которую я использую для некоторых вещей, которые включают использование БД. Мне нужно иметь возможность запретить людям доступ к этому файлу и убедиться, что путь информации - это мой сайт, а не другая веб-страница, использующая Processrequest для достижения этой цели.

    public void ProcessRequest (HttpContext context) {


    if (context.Request.Url.Authority.ToString() != HttpContext.Current.Request.Url.Authority.ToString())
        return;
    context.Response.ContentType = "text/plain";
    string str = context.Request.Form["recordsArray[]"].ToString();
    char[] delimiters = new char[] { ',', ';' };
    string[] arr = str.Split(delimiters);

    for (int i = 0; i < arr.Length; i++)
    {
         Functions.Add(new tab(arr[i])); // insert records into table Tabs => int id, string name           
    }

}

Ответы [ 2 ]

3 голосов
/ 27 апреля 2011

Если вы хотите, чтобы люди не имели доступа к какому-либо ресурсу, обычно вы защищаете этот ресурс с помощью аутентификации: вы предоставляете авторизованным пользователям имя пользователя / пароль, позволяющие отличить их от неавторизованных пользователей.

Запрос HTTP можетбыть подделан и сделан так, чтобы он выглядел так, как будто он исходит от вашего домена, а на самом деле это не так.Так что единственный способ - использовать какой-то секрет.

0 голосов
/ 27 апреля 2011

Вы могли бы также кое-что, что обрабатывает инъекцию SQL для вас.

Linq to sql: http://weblogs.asp.net/scottgu/archive/2007/09/07/linq-to-sql-part-9-using-a-custom-linq-expression-with-the-lt-asp-linqdatasource-gt-control.aspx

или для чего-то более простого, вы можете просто использовать параметры SQL (с помощью которых Linq to SQL использует):

(краткое руководство): http://www.sharpdeveloper.net/content/archive/2007/05/25/creating-sqlparameters-best-practices.aspx или здесь http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlparameter.aspx

Я знаю, что это не совсем решение для вас, но я надеюсь, что это поможет.

...