1. 避免使用 inc作为扩展名
当代码在安全机制不好的Web Sever上运行时,只需在地址栏中输入某个扩展名是inc的文件的url,就可以浏览该文件的内容。这是由于在web Server上,如果没有定义好解析某类型(inc)的数据链接库,该文件就以源码方式显示。
2. 不要把Access数据库放在网站的内部
当恶意人士获取数据库路径后,就可以轻意获取该数据库,进而肆意修改数据库内容。较好的做法是,将数据库文件放在网站虚拟路径之外。
3.过滤掉字符中的单引号
比如: strname = "I'm haker"
strsql = "select * from user where name=' "&strname&" ' "
conn.Excute strsql
这样在实际的执行过程中最终的SQL 语句是:
select * from user where name='I'm haker'
由于在 "I'm haker" 中包含一个单引号“‘”,这样系统会认为在字母“I"后面已经结束,但后面仍有字符,于是就提示语法错误。
有人试图从网址中参数中加入这样的字符的化,错误仍会发生。 仅仅错误不可怕,可怕的是错误提示,因为这表明了出错文件的位置,数据库类型等重要信息,于是有人便开始sql注入,或下载数据库。
解决办法是将单引号过滤掉,或者替换为两个单引号。另外的方法是设置IIS 不向客户端输出详细错误信息。
4.禁止向客户端输出详细错误信息。