作为IT人,有时候会总做一些不该做的事情;回想有一次,我在进行评论操作的时候输入了一小段JS代码,但结果却让我有点意外,并没有达到我预期的效果,他将其当做一般字符处理了;当时我就在想他是怎样实现的这样一个功能!现在我弄明白了;首先、.NET在这方面预先就设置了操作,因此不可以进行这样的操作;其次,通过后台代码来实现;下面是我的一点小分析:
首先是.NET内置:ASP.NET页面中的默认操作ValidateRequest="true",当用户输入相关特殊字符的时候,他就会报错,不允许用户这样操作。现在又存在一个问题:假如当用户在进行评论的时候他需要这些特殊字符,那又怎么办?将其禁掉,还是别的什么操作?假如将其禁掉,那么问题又来了,当重新加载该页面的时候,这段特殊字符也就会被当HTML代码进行执行,这是我们所需要的结果吗?当然不是。那我们又应该怎么办?我们同样将其当做一般字符处理,在重新被加载的时候仍然按一般字符来处理,代码如下:
TextBox1.Text = HttpUtility.HtmlEncode(TextBox2.Text);//该行的代码将会把用户输入的特别字符处理成一般的字符,在加载的时候并不会当JS执行。
这样执行的结果就不会被当做HTML处理了!