当前位置:首页 » 编程博文
开发技术指南» 文章正文
    引言: 原文地址:http://blog.csdn.net/estyle/archive/2004/07/02/32269.aspx欢迎转载!但请注明出处(原文地址)和我的姓名:靳田谢谢啦! ^_^ 尽管大家都提“防御性编程”,但我还是比较喜欢“防御”——毕竟防御不是目的,只是措施而已,过分强调难免...
 

 

    摘要:第九章 方法 一、 实例构造器 1、 前面提到用new操作符创建对象时的三部曲: l 为对象分配内存 l 初始化对象的附加成员(方法表指针和syncblockindex) l 调用实例构造器初始化实例状态 在分配内存时,系统将所有内存位置均置为0值,这就是为什么字段初始化而未赋值时均为0或null值。 不调用实例构造器的情况: l 调用object.memberwiseclone()方法创建实例(......
    摘要:假设我是搭建在内部局域网中的一个dns(仅用测试嘛~)。 1. 第一步肯定是要规划一下自己域内的dns该怎么配! 希望配置到my.net的主域名服务器为10.1.1.198。而marco.my.net是公司的web和ftp服务器,它的ip是10.1.1.201。yuyu.my.net是mail server指向10.1.1.202 2. 根据上面的想法配置/etc/named.conf optio......


浮想B/S中的防御

原文地址:

欢迎转载!但请注明出处(原文地址)与我的姓名:靳田 【程序编程相关:关于blog的作用的一些思考

http://blog.csdn.net/estyle/archive/2004/07/02/32269.aspx 【推荐阅读:实现上千万条数据的分页显示!

  尽管大家都提“防御性编程”,但我还是比较喜欢“防御”——毕竟防御不是目的,只是措施而已,过分强调难免迷失方向. 【扩展信息:VB.net基础:如何获得并显示网上图片

谢谢啦! ^_^

  首先要弄清楚的问题是:什么是防御?为什么要进行防御?

  回答第一个问题,简单地说,防御有两个主要内容,既尽量避免潜在的错误发生与尽量减小错误带来的危害.

  如果你已有一定编程经验,或许会拿防御与异常处理进行对比.就我看来,异常处理提供的是一套死的机制,而防御则属于活的思路编程范畴,把异常处理用活了,也就成了一种防御(注意这远远不是防御的全部).

  对于第二个问题,这样说或许比较贴切:就算你能容忍你的程序中存在大量高发且明显甚至危险的漏洞,你的客户与程序使用者却是无论如何都不能接受的!你惹他们试试看?

  其次,我们要弄清楚的问题是:如何进行防御?

  前面说过了,防御是活的,其根本任务不在于形式,而在于思路!现在我们先理清思路.

  最传统的防御思路是:先为程序设置一个理想的应用环境(不仅仅是软硬件环境,还包括使用者行为等可变因素),分析法找出尽可能多的潜在错误(既那些可能与理想的运行环境不同的地方),制定验证依据与响应措施并实施,然后运用错误处理机制对未知的潜在错误进行捕获与处理.——注意,我用了“最传统的”来修饰这个防御思路,建议大家先不要在意这个思路的优劣,看完全文再慢慢讨论.

  无论是什么样的防御思路,其最根本的问题总是“分析法找出尽可能多的潜在错误”,所以下面我们先说说这个根本问题.

  或许举几个简单而片面,但是很常见的例子比较能够帮助大家理解:

  一.用户信息注册,数据表中设计的年龄字段的数据类型是整型,用户可能输入的是“eighteen”;

  二.运用mssql数据库的asp应用程序被部署在一台没有安装mssql与msde的服务器上;

  三.依赖用户输入构造t-sql语句的where子句,导致埋下的sql注入隐患;

  四.浏览者短时间内多次尝试登陆.

  呵呵,是不是一旦举例,就豁然开朗了?问题在于,如何找出尽可能多的潜在错误,强调的是尽可能多!这我可帮不了你,要靠你自己发现并总结经验.当然,借鉴别人的经验也是有效的,但如果缺乏自己的思考仍然是永远不够的.


...   下一页
    摘要:php 5 is a very popular point for discussion within the php community. with the third release candidate released on the 8th of june and the zend php 5 coding contest, it is easy to see that the full s......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE