用。net做论坛关于数据的问题

来源:百度知道 编辑:UC知道 时间:2024/06/07 02:20:04
我是初学者 做了一个有基本功能的小型论坛 问题是当系统处理注册,发帖等有关数据库(SQL2005)操作时,用户输入有字符 ' 就不行了 原因是造成SQL语句错误,(insert select语句等) 单引号的问题。怎样解决?是不是需要将数据库先转换到其他格式,再处理?如何转换?

肯定是不行的了。
并且这是非常危险的,利用这个BUG可以进行SQL的注入攻击。
你可以查一下SQL注入攻击的防范措施。你就知道怎么过滤这些符号了。

最直接的办法就是 当用户提交帖子的时候,把帖子中的内容,凡是敏感的、恶意的字符全部转换成其他字符,用户浏览帖子的时候,再从数据库中读出来,然后再“反转换”一次字符,就OK了。

你可以这样来处理:
在insert的时候把单引号replace为 @'@ 这种特殊符号
然后在你展示数据的时候,再把@'@替换为单引号就可以了

我遇到这样的问题都是这样处理的

所有的SQL写成存储过程.

单引号要做encoding转换,或者直接禁止输入单引号。这也是一种防注入。

你看看正则表达式能不能帮你解决问题!