日期:2014-05-17  浏览次数:20408 次

asp.net 插入HTML字符串怎么避免被过滤?
平时textbox都会过滤防止SQL注入攻击,如果是一篇文章里面包含了很多HTML代码,在用SQL过滤那不是很多标签都没有了啊??我想是不是用htmlencode编码插入数据库啊??如果要是这篇文章里面包含单词drop,delete 这单词不是过滤没有了啊??

------解决方案--------------------
SQL过滤不是像你那么实现的,为什么会过滤单词呢?
这种过滤方法是错误的代码。

你可以使用微软提供的AntiXSS进行防止
下载地址
http://wpl.codeplex.com/
------解决方案--------------------
写入数据库,用参数化SQL,而不要用Replace替换所谓危险字符。
------解决方案--------------------
要用htmlencode也可以,不过读取时候再用htmldiscode转换回来就行,这个转换不会转换单词,只会把
<,>,空格等替换掉,读取时候替换回来就是,但是如果有<script>,就用正则把这个东西替换掉吧,要不你的存储虽然是相对安全的,但是如果用户读取数据时候,就会运行script脚本的