网站建设安全原则[转来自己看的]
2009-12-16 13:01
232 查看
1、 控制所有的输入
不要禁止ASP.NET系统验证机制(即不要把ValidateRequest设为False),如果确实需要禁止验证,只在需要的地方执行。(防止XSS攻击)
在所有的输入启用服务器端验证控件(Range, RequiredField,Custon or RegularExpression)
2、 不要向客户端返回未过滤的数据
在向客户端返回数据前使用HttpUtility.HtmlEncode或HttpUtility.UrlEncode.
如果需要允许一些特殊字符,先使用编码方法,然后用HTML代码替换它们。
// Encode thestring input from the HTML input text field
StringBuilder sb= new StringBuilder(HttpUtility.HtmlEncode(htmlInputTxt.Text));
// Selectivelyallow <b> and <i>
sb.Replace("<b>","<b>");
sb.Replace("</b>","</b>");
sb.Replace("<i>","<i>");
sb.Replace("</i>","</i>");
3、 不要使页面未过滤的数据生成SQL请求(防SQL注入)
4、 避免在网站树目录中储存敏感数据
将连接串写在web.config的<connectionStrings>中,并使用如下命令加密(或用其他更加复杂的加密方式,如带密钥的RSA加密)。先在服务器上布置后再加密。
cd website_directory
aspnet_regiis-pef "connectionStrings"
使用相同的命令来加密配置文件(如appSettings, identity, sessionState)中的敏感字段。
5、 不要给予一个没有检查路径和后缀的文件以任何权限
6、 不要信任不受你权限控制的任何不可靠元素
不要在viewstate中存放敏感字段,并且不要用其中的数据进行安全验证。
需要考虑加密viewstate。
如果你使用ViewState加密技术,并且在Web Farm中配置应用程序。你必须确定在各个服务器上散列的配置文件和密钥。
7、 不要在页面留下任何注释,若需要,使用ASP.NET注释
8、 不要暴露多余的安全信息
使用统一的错误页面,不要让系统级别信息返回客户端。
9、 不要让你的WebServer帮你管理错误
确保你的WEB服务不会返回含有过多细节的错误信息。
10、每个页面都必须验证用户访问
每打开一个页面都要检查用户是否通过登陆认证。
11、不要使用有规律的标识号
程序中所有的标识号必须使用GUID类型。
12、使用尽量少的缓存操作
所有包含敏感数据的页面必须包含下列标签(Set page topre-expire,No-cache,No-pragma-cache)。
不要禁止ASP.NET系统验证机制(即不要把ValidateRequest设为False),如果确实需要禁止验证,只在需要的地方执行。(防止XSS攻击)
在所有的输入启用服务器端验证控件(Range, RequiredField,Custon or RegularExpression)
2、 不要向客户端返回未过滤的数据
在向客户端返回数据前使用HttpUtility.HtmlEncode或HttpUtility.UrlEncode.
如果需要允许一些特殊字符,先使用编码方法,然后用HTML代码替换它们。
// Encode thestring input from the HTML input text field
StringBuilder sb= new StringBuilder(HttpUtility.HtmlEncode(htmlInputTxt.Text));
// Selectivelyallow <b> and <i>
sb.Replace("<b>","<b>");
sb.Replace("</b>","</b>");
sb.Replace("<i>","<i>");
sb.Replace("</i>","</i>");
3、 不要使页面未过滤的数据生成SQL请求(防SQL注入)
4、 避免在网站树目录中储存敏感数据
将连接串写在web.config的<connectionStrings>中,并使用如下命令加密(或用其他更加复杂的加密方式,如带密钥的RSA加密)。先在服务器上布置后再加密。
cd website_directory
aspnet_regiis-pef "connectionStrings"
使用相同的命令来加密配置文件(如appSettings, identity, sessionState)中的敏感字段。
5、 不要给予一个没有检查路径和后缀的文件以任何权限
6、 不要信任不受你权限控制的任何不可靠元素
不要在viewstate中存放敏感字段,并且不要用其中的数据进行安全验证。
需要考虑加密viewstate。
如果你使用ViewState加密技术,并且在Web Farm中配置应用程序。你必须确定在各个服务器上散列的配置文件和密钥。
7、 不要在页面留下任何注释,若需要,使用ASP.NET注释
8、 不要暴露多余的安全信息
使用统一的错误页面,不要让系统级别信息返回客户端。
9、 不要让你的WebServer帮你管理错误
确保你的WEB服务不会返回含有过多细节的错误信息。
10、每个页面都必须验证用户访问
每打开一个页面都要检查用户是否通过登陆认证。
11、不要使用有规律的标识号
程序中所有的标识号必须使用GUID类型。
12、使用尽量少的缓存操作
所有包含敏感数据的页面必须包含下列标签(Set page topre-expire,No-cache,No-pragma-cache)。
相关文章推荐
- 网站建设安全原则
- 高性能网站建设的14个原则
- 自己动手用麦咖啡(mcafee)打造自己的安全网站!安全系统(服务器)
- 网站建设的原则及要点
- 如何了解并可以自己建设网站?学习顺序如何 ?
- 高性能网站建设的14个原则
- 掌握信息安全建设原则 做好信息安全建设
- 网站建设的交互设计原则是什么
- MemCache 安全使用原则(自己整理,仅供参考)
- 自己动手用麦咖啡(mcafee)打造自己的安全网站!安全系统(服务器)!
- 天津网站建设-文率科技为定制独属自己的网站
- 2012企业网站建设回归“简洁、实用”原则
- 中小企业怎么选择适合自己的网站建设公司_企业全网营销怎么做
- 创业随想--从网站建设开始(1,美好一生一世网首页,开始自己的创业梦想)
- 网站建设,企业网站的定位原则
- 建设电子商务网站几个原则
- 网站优化中外链建设的核心原则
- 高性能网站建设的14个原则(转载)
- PHP安全编程:网站安全设计的一些原则(转)
- 高性能网站建设的14个原则