ASP.NET: я в безопасности от SQL-инъекций и XSS в этой ситуации? - PullRequest
1 голос
/ 12 ноября 2010

У меня есть веб-сайт ASP.NET, управляемый блогом. Под сообщением есть блок комментариев, позволяющий читателям оставлять комментарии.

Для этого я использовал несколько TextBox и TextArea.

Для предотвращения XSS:

Я отфильтровал ввод с помощью метода: Server.HtmlEncode () (меня не волнует форматирование текста).

Для предотвращения SQL-инъекций:

Я использую Linq To SQL (это должно быть похоже на параметризованные запросы!).

Теперь я в безопасности?

Потому что я установил ValidateRequest = "false" в директиве страницы.

Вот код:

ArticlesDataClasses dc = new ArticlesDataClasses();

        ArticleComment newComm = new ArticleComment()
        {
            ArticleID = int.Parse(Request.QueryString["ArticleID"]),
            CommentAuthor = Server.HtmlEncode(txtName.Text),
            CommentText = Server.HtmlEncode(txtComment.InnerHtml).Replace("\n", "<br />"),
            CommentAuthorEmail = Server.HtmlEncode(txtMail.Text),
            CommentTime = DateTime.Now,
            Enabled = false
        };

        dc.ArticleComments.InsertOnSubmit(newComm);
        dc.SubmitChanges();

Спасибо ..

1 Ответ

0 голосов
/ 12 ноября 2010

Параметры и кодировка являются основными, но вы также можете принять участие в атаке на межсайтовый запрос и запретить публикацию, если реферер не ваш сайт:

http://haacked.com/archive/2009/04/02/anatomy-of-csrf-attack.aspx

...