在 防止sql注入的时候经常会使用sql 参数化 或者是 过滤掉一些非法关键字。如果采用的是过滤一些非法关键字 如下:
"and|exec|insert|select|delete|update|count|chr|mid|master|truncate|char|declare|script|script|object|-|@|&|;|$|%|'|\\|+|<|>|CR|LF|,";
这些关键字。其中 and 这个关键字 可能在英文版本的项目中会在普通的内容中出现 这个词。如果过滤掉了 内容就不对了。 还有 中划线 “-” 因为 在sql 中 两个中划线 在一起表示注释。所以在这里也被列为非法关键字。。有时候 在 一些项目中 特别是产品的一些项目 会录入 一些 如 :
xxx-xxx 这种形式的名称。这样一来也会被过滤掉。。像这种情况有没有 什么比较好的解决方法。
关于跨站脚本攻击的话 除了显示输出内容的时候先进行编码以外还有什么其他更好的方法么。如果是过滤关键字和一些特殊字符的话 总感觉不是很好。 如果是一些内容信息 本来可能需要在里面进行一些样式 设置。有可能会把这些样式都过滤掉。
SQL注入就是参数化查询,脚本攻击就把大小括号吃掉就行了