我是一个由博客驱动的ASP.NET网站。 在帖子下面,有一个评论区块让读者发表评论。
我已经使用了一些TextBoxes和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();
谢谢..
答案 0 :(得分:0)
参数和编码是主要的,但您也可能想要进行跨站点请求攻击,并且如果引荐来源不是您的站点,则阻止发布:
http://haacked.com/archive/2009/04/02/anatomy-of-csrf-attack.aspx