保障Web安全的一些最佳实践

http://msdn.microsoft.com/zh-cn/library/ms994921.aspx
列了设计,开发,部署Web应用程序的一些最佳实践,有些是个人的心得体会,有些是通过资料得来的,比较简单,给大家提个参考用。

恩,一切的前提还是你先保证网络安全和主机安全,然后再考虑Web安全,不然白搭.....

1.物理网络架构方面
在不同的主机上部署web server, app server, database server。
限制外界web server的连接,比如只提供80端口。
限制web server与app server,database server之间的连接,比如使用防火墙或者操作系统或者软件的配置。
不在web server上存储机密的信息,如果存储,最好加密。比如其他server的帐号信息。

2.认证
采用规范的认证方法,密码,证书,活动密钥,生物方式。如果你所在的公司有现成的认证接口或者认证产品,用这个,不要自己编。如果要求比较强烈,可以考虑多种认证方式并行。比如密码+证书+活动密钥
传输密码时最好加密,存储密码时也最好加密。
设计密码时满足一定的强度,特别是管理员的帐号...

3.授权和访问控制
每个用户满足最小权限原则。
在逻辑层和数据层做访问控制,在表现层(网页,flash文件)做的访问控制对安全没有实际用途

4.Session管理
各种中间件上的session管理已经很好了,不要随便自己编。(国内的应该没有自己编的....)
session应该设置为一定时间内过期。
不要轻易设置为让浏览器固态存储cookie
一个帐号最好只允许一个用户登录
不要在客户端放置任何标识用户身份的信息,只信赖session id

5.连接数据库
连接数据时应该使用最小权限的帐号(一上来就用sa的人最后因为sql注入死翘翘)

6.关键数据保护
对待关键数据要加倍小心,可以使用加密,区别对待的方法

7.日志
记录日志吧,有条件的话,记得详细点,特别是关键操作,再有条件的,对日志做个备份或者记在其他server上。

8.代码编写
使用的模板,框架,技术本身有问题吗?
在服务器端做输入过滤,客户端的输入过滤是无效的。过滤特殊字符,数据类型,数据长度。最好是只接受合法输入,而不是拒绝特殊情况。

说的太简单了就比较空,光关于某一点都有很多可以说。恩,不管怎样,给大家提供个参考吧,欢迎大家补充。

一个不错的资源来自微软:
http://msdn.microsoft.com/en-us/library/ms994921.aspx
不光对于.NET架构的,对于其他web应用程序也有一定参考价值。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值