1、对数据库进行安全配置,例如你的程序连接数据库所使用的帐户/口令/权限,如果是浏览新闻的,用只读权限即可可以对不同的模块使用不同的帐户/权限;另外,数据库的哪些存储过程可以调用,也要进行严格地配置,用不到的全部禁用(特别是cmd这种),防止注入后利用数据库的存储过程进行系统调用;
2、在获取客户端提交的参数时,进行严格的过滤,包括参数长短、参数类型等等;
3、对管理员后台进行严格的保护,有条件的话,应该设置为只允许特定的IP访问(例如只允许管理员网段访问)――这个要根据实际情况来看的;
4、对操作系统进行安全配置,防止注入后调用系统的功能,例如把 cmd.exe/tftp.exe/ftp.exe/net.exe 这些文件全部转移到其他目录,并对目录进行严格的权限指派;
5、设置网络访问控制;
6、有条件的话,配置针对HTTP的内容过滤,过滤病毒、恶意脚本等;
7、如果有必要,可以考虑选择HTTPS,这样可以防止很多的注入工具扫描,我以前自己开发注入检测工具的时候,考虑过做支持HTTPS方式的,但目前还没付诸实施。 相信你也看出来了,总的来说程序方面主要考虑权限、参数过滤等问题;权限主要包括IIS浏览权限、数据库调用权限。除此以外,还要考虑数据库、操作系统的安全配置。
另外,不知道你们在开发过程中会不会用到其他人开发的组件,例如图片上传之类的,这类组件你们研究过其安全性么?或者开发的过程中,绝大多数人会使用网上、书上提供的现成代码,例如用户登录验证等等,这些公开代码,也要研究其安全性问题。