等待依然
三月的柳绿了的时候
三月的杏花也红了
你的许诺是这样的苍白
在我的等待中它们失去了色彩
青春是娇柔的叶子
你却一再的让它们在冷冻的空气中
摇摆
它们有了季节的绿
却因你迟迟不来的音信
它们的渴望无法被释怀
所以 绿叶 残败
华发早生的原因
有谁可以说得清
有多少的眼泪可以被吹散
在有风的日子里
有多少的心事可以被搁置
在月亮的清辉里
千帆过尽了
依然不是
也不用凭栏
在斜阳的深处
有独立的汉家陵阙
三月的柳绿了的时候
三月的杏花也红了
你的许诺是这样的苍白
在我的等待中它们失去了色彩
青春是娇柔的叶子
你却一再的让它们在冷冻的空气中
摇摆
它们有了季节的绿
却因你迟迟不来的音信
它们的渴望无法被释怀
所以 绿叶 残败
华发早生的原因
有谁可以说得清
有多少的眼泪可以被吹散
在有风的日子里
有多少的心事可以被搁置
在月亮的清辉里
千帆过尽了
依然不是
也不用凭栏
在斜阳的深处
有独立的汉家陵阙
点燃生命
梦随着爱飞翔
随着那夜的月光来到天边
换成礼花的颜色
星蕊漫步银河
不知哪儿是方向
烟花袭来
一声爆破
坠到死海
失去火的滋味
一缕青烟
无目的的等待
永远不知散去
飘到云霄
使大地得到震撼
从一扇长长的窗口开始,一个女人走进秋天
吹散的长发与风无关。山一直在倾听着海啸
男人习惯用佛的预言拉长时间的距离和窃喜
撒哈拉对廊桥的渴望羽化成五百年前的擦肩
一片简单的叶子 轻易就将悲欢刻入了筋脉
精致的月光从不同的角度收集了慌乱的温柔
落魄诗人以聊斋的方式染红了江边的青草地
满天飞舞的柳絮和女人交换了童年的羊角辫
有没有一泓清泉在山的那边静静编织蓑衣?
有没有一枝短笛轻轻吹起了马背上的歌谣?
给你一个借口,你会纵身跳进我无边的眼神
给你一根火柴,你会和今夜的天空一起燃烧
偶尔的一阵风无意间碰醒了铁轨边的老槐树
一些洁白的冰棱耐心地收藏起了诗人的痕迹
月光泼下来,覆盖着千年万年的惊叹
开始与结束,这死亡的回归呀
我将牵谁的手一起共度
饶过感情,你始终走在我的面前
在你手指叠出的风韵里
我仅是一只远行之雁,那些
姹紫嫣红的景致,与我无关
在一个很瘦的黄昏,我悟出了
伤心的细节,于是
我读你远去的背影,慌如隔世的梦
爱你,最终无法逃避尘世的捆扰
PHP是一个很优秀的工具,它可以简单,也可以复杂。不一样的项目,应该用不一样的PHP。
小项目 – 简单而直接的PHP
一般对于一个功能页面在20以下的网站,我们可以用一个很简单的框架结构来写。在这个规模上,我建议是使用比较直接的面向过程编码方法,原因很简单,没有必要把class文件弄的N 多,结果controller里边就一个new就完了。当然,需求频繁变化的项目除外。
在这个级别上,php优点表现的很明显:快速开发,一目了然。缺点同时也被隐藏得很好。
中型项目 – 结构优美的OO化的PHP
对于一个中型项目,我建议使用一个良好设计的框架来做,这个框架可以是基于MVC模型,封装了众多底层操作的,当然,一定要有一个好的最好是透明的cache机制,这样,我们为了适应变化而加入的OO机制可以运行得更快更好。
在这个级别上。php的缺点开始凸现,像对OO支持的不完整(这个PHP5有很大改进),只能单线程模式。另外一些外围工具开始出现缺乏支持,像PHP没有好的重构工具,没有好的集成到IDE中的单元测试工具。优点当然还是原来的快速开发,广泛的可用的开源资源。
大型项目 – 扩展、优化后的PHP
这里的大型项目,简单的指分布式项目,就是说,你的程序需要被部署在N台服务器上了。在这个层级上,PHP比起j2ee的确缺乏很多支持。我曾和shadow在735上详细讨论过PHP要在大型系统上应用需要解决的一些问题,当然这些问题不光是PHP这个语言的问题,也包括了周边开发的问题:
1 PHP的页面代码共享,PHP的源代码被载入内存一次以后,就在其中保留 – 这个用APC和Zend的优化器可以搞定。
2 PHP页面之间的数据对象共享,a.php和b.php之间可以共享一个数据对象,比如数组,这个现在可以用序列化来作,但是会有文件io,这块可以用共享内存或者memcached来处理。
3 PHP的数据库连接池,因为在多前端的情况下,PHP控制不住对数据库的连接,所以需要在数据库前边去作一个连接池,类似于sqlrelay的东西。另外数据缓存也是很重要的,大压力开发有一个tip,就是能不动数据库就不要动数据库。
4 PHP的前端cache系统。一个透明的可控制的cache机制,确保网站的页面以最少次数查询数据库。这个有很多实现,但是没有找到特别好的。
5 一个PHP应用,成功的解决调这几个问题以后,应付稍微大一点的压力是没有什么问题的。
在这个级别上,重要的是,把PHP java C++ python之类融合起来,使其成为一个高效系统。我们可以用memcached来做分布式内存管理,可以用Lucene 来作全文检索,用ejb 容器来放一些业务逻辑组件,PHP则作为前端和系统的胶水,快速而灵活的把这些粘合起来
Imperva(专注于数据库及应用系统安全的专业技术公司)已经给SecureSphere(数据库安全网关,Imperva公司产品)增加了一项新的技术,这项技术可以追踪到数据库中哪些敏感字段值受到修改。
Imperva已经将这个新功能加入到它的数据库监控产品中,能够让用户追踪到敏感字段值的修改,这种追踪的精确度能达到行级。
该公司将此技术称为Track Value Change,作为SecureSphere数据库安全网关软件的一部分。旨在追踪数据库中字段值的修改,公司官员称此产品可成为所谓“内部威胁”的解决方案,还能为那些指望通过遵守如萨班斯•奥克斯利法案(Sarbanes-Oxley Act)来解决财务安全问题的公司排忧解难。
公司官员说未经授权对数据库进行修改的用户,将会面临长期和全面的调查,以此来揭示未授权者对哪些数据做了修改,并且还能恢复到原来的值。
公司官员还说使用Track Value Change技术,SecureSphere能够监控和审核特定记录的数值,或者一张数据库表中的某些行。另外,SecureSphere还能让组织机构进行一些设置,当一些字段值的修改违反了先前制定的规则或者界限时,会生成一个警告。举个例子,SecureSphere能够识别一些潜在的欺骗行为,如信用卡额度大幅增加,销售发票过度折扣,产品库存量大幅增加等。
Imperva公司在企业数据库审查领域,和其它多家公司竞争,包括Application Security、Guardian、Lumigent Technologies 和Tizor System。
和基于触发器的方法不同,SecureSphere使用重复运行记录来监控修改操作,并且识别执行该操作的用户。
Imperva公司市场战略高级经理Mark Kraynak说:“使用数据库触发器的方法的产品需要维护,并不是一蹴而就的,需要有人工的介入。而SecureSphere追踪字段值的修改的方法更加智能化,不需要人工干预而达到一个很好的效果。因此,使用数据库触发器来追踪字段值的修改,就像让狐狸来守卫鸡舍,因为数据库管理员可以介入进行操作,他们能创建和修改触发器,达不到实际的安全效果,而SecureSphere却能实现职权分离。
另外,不像基于数据库触发器的方法,需要对数据库进行侵入式修改。SecureSphere的方法不需要改变数据库。为了实现追踪字段值的修改,用户可以进入SecureSphere规则管理界面,使用下拉菜单来设置允许的规则,并且规定数据库字段值变化的范围。
Kraynak说:“SecureSphere已经预定义了各种模板,用户可以应付各种不同的操作,包括插入、删除和修改操作,实现追踪数据库字段值的修改,并且对于容易违反规则的修改给出警告提示”
Imperva公司的简介
Imperva公司总部位于美国硅谷,是一家专注于数据库及应用系统安全的专业技术公司。其产品和技术填补了行业的巨大空白——即,保障企业运营系统、管理和业务系统的核心的数据库及相关应用系统。目前Imperva已服务的客户涵盖各大行业的顶级企业,如金融业的Visa、RBS,电信业的英国电信,IT产业的惠普、Oracle,电子商务领域的Scottrade,等等。
Imperva SecureSphere 数据库安全网关
通过实时的设备监控和数据库审核,Imperva公司的SecureSphere可以有效防止攻击,所有违反安全特征的数据库读写都将被视为未被授权的行为。 在对数据库的运行、稳定性和管理方面没有丝毫影响的情况下,SecureSphere可以实现所有的功能。在监控数据库读写是否违反安全的同时,SecureSphere可以识别哪些是正常的数据库读写、哪些是可疑的行为。对于那些需要遵守相应管理规定的企业来说,SecureSphere可以支持数据库活动日志功能,并提供可定制安全报告的功能。
ECC是“Error Checking and Correcting”的简写,中文名称是“错误检查和纠正”。ECC是一种能够实现“错误检查和纠正”的技术,ECC内存就是应用了这种技术的内存,一般多应用在服务器及图形工作站上,这将使整个电脑系统在工作时更趋于安全稳定。
要了解ECC技术,就不能不提到Parity(奇偶校验)。在ECC技术出现之前,内存中应用最多的是另外一种技术,就是Parity(奇偶校验)。我们知道,在数字电路中,最小的数据单位就是叫“比特(bit)”,也叫数据“位”,“比特”也是内存中的最小单位,它是通过“1”和“0”来表示数据高、低电平信号的。在数字电路中8个连续的比特是一个字节(byte),在内存中不带“奇偶校验”的内存中的每个字节只有8位,若它的某一位存储出了错误,就会使其中存储的相应数据发生改变而导致应用程序发生错误。而带有“奇偶校验”的内存在每一字节(8位)外又额外增加了一位用来进行错误检测。比如一个字节中存储了某一数值(1、0、1、0、1、0、1、1),把这每一位相加起来(1+0+1+0+1+0+1+1=5)。若其结果是奇数,对于偶校验,校验位就定义为1,反之则为0;对于奇校验,则相反。当CPU返回读取存储的数据时,它会再次相加前8位中存储的数据,计算结果是否与校验位相一致。当CPU发现二者不同时就作出视图纠正这些错误,但Parity有个缺点,当内存查到某个数据位有错误时,却并不一定能确定在哪一个位,也就不一定能修正错误,所以带有奇偶校验的内存的主要功能仅仅是“发现错误”,并能纠正部分简单的错误。
通过上面的分析我们知道Parity内存是通过在原来数据位的基础上增加一个数据位来检查当前8位数据的正确性,但随着数据位的增加Parity用来检验的数据位也成倍增加,就是说当数据位为16位时它需要增加2位用于检查,当数据位为32位时则需增加4位,依此类推。特别是当数据量非常大时,数据出错的几率也就越大,对于只能纠正简单错误的奇偶检验的方法就显得力不从心了,正是基于这样一种情况,一种新的内存技术应允而生了,这就是ECC(错误检查和纠正),这种技术也是在原来的数据位上外加校验位来实现的。不同的是两者增加的方法不一样,这也就导致了两者的主要功能不太一样。它与Parity不同的是如果数据位是8位,则需要增加5位来进行ECC错误检查和纠正,数据位每增加一倍,ECC只增加一位检验位,也就是说当数据位为16位时ECC位为6位,32位时ECC位为7位,数据位为64位时ECC位为8位,依此类推,数据位每增加一倍,ECC位只增加一位。总之,在内存中ECC能够容许错误,并可以将错误更正,使系统得以持续正常的操作,不致因错误而中断,且ECC具有自动更正的能力,可以将Parity无法检查出来的错误位查出并将错误修正。