分布式系统架构Hadoop介绍

  Hadoop 由 Apache Software Foundation 公司于 2005 年秋天作为Lucene的子项目Nutch的一部分正式引入。它受到最先由 Google Lab 开发的 Map/Reduce 和 Google File System(GFS) 的启发。2006 年 3 月份,Map/Reduce 和 Nutch Distributed File System (NDFS) 分别被纳入称为 Hadoop 的项目中。
  Hadoop 是最受欢迎的在 Internet 上对搜索关键字进行内容分类的工具,但它也可以解决许多要求极大伸缩性的问题。例如,如果您要 grep 一个 10TB 的巨型文件,会出现什么情况?在传统的系统上,这将需要很长的时间。但是 Hadoop 在设计时就考虑到这些问题,采用并行执行机制,因此能大大提高效率。
  Hadoop 有许多元素构成。其最底部是 Hadoop Distributed File System(HDFS),它存储 Hadoop 集群中所有存储节点上的文件。HDFS(对于本文)的上一层是 MapReduce 引擎,该引擎由 JobTrackers 和 TaskTrackers 组成。

优点:

  Hadoop 是一个能够对大量数据进行分布式处理的软件框架。但是 Hadoop 是以一种可靠、高效、可伸缩的方式进行处理的。Hadoop 是可靠的,因为它假设计算元素和存储会失败,因此它维护多个工作数据副本,确保能够针对失败的节点重新分布处理。Hadoop 是高效的,因为它以并行的方式工作,通过并行处理加快处理速度。Hadoop 还是可伸缩的,能够处理 PB 级数据。此外,Hadoop 依赖于社区服务器,因此它的成本比较低,任何人都可以使用。
  Hadoop是一个能够让用户轻松架构和使用的分布式计算平台。用户可以轻松地在Hadoop上开发和运行处理海量数据的应用程序。它主要有以下几个优点:
  1.高可靠性。Hadoop按位存储和处理数据的能力值得人们信赖;
  2.高扩展性。Hadoop是在可用的计算机集簇间分配数据并完成计算任务的,这些集簇可以方便地扩展到数以千计的节点中。
  3.高效性。Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快。
  4.高容错性。Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配。   Hadoop带有用 Java 语言编写的框架,因此运行在 Linux 生产平台上是非常理想的。Hadoop 上的应用程序也可以使用其他语言编写,比如 C++。

代码之美 – 如何写出优雅的PHP代码

  写出优秀的程序代码是一门艺术,要想如此,就必须在一开始就养成良好的编程习惯。良好的编程习惯不仅有助于项目初期的设计(如模块化),还可以使你编写的代码更易于理解,从而使代码的维护工作更轻松、更省力。不好的编程习惯则会造成代码bug,并且会使以后的维护工作困难重重。 

   本文以PHP语言为例,介绍一些良好的编程习惯,希望能够对你有所帮助。 

1. 规划代码结构 

  优秀的PHP代码应该有清晰的结构。PHP面向对象的特性允许程序员将应用程序分解为函数或方法。如果代码晦涩难懂,你也可以添加注释,使代码的功能一目了然。编码时应尽量将前端代码(HTML/CSS/Javascript)与应用程序的服务端规则分开,或者你可以使用遵循MVC模式的PHP框架来构建你的应用程序。

2. 编码风格统一 

  优秀的PHP代码应该具备统一的风格。比如,为变量和函数制定统一的命名规则,为循环任务(比如数据库存取、错误处理)制定统一的接入标准,或者保持有规律的代码缩进,这些编码习惯都可以让别人阅读代码更加轻松。 

 3. 可移植性 

  优秀的PHP代码应该具有可移植性。程序员应学会运用PHP现有的特性(比如魔术引号和短标签等),应该了解产品需求,适应PHP的特点,保证写出的PHP代码具有可移植性和跨平台性。 

 4. 代码安全性 

  优秀的PHP代码应该具有安全性。PHP5具有卓越的特性和灵活性,但应用程序的安全往往掌握在程序员的手中。作为专业的PHP开发人员,应该对安全漏洞有一些深入了解,常见的安全漏洞有跨站脚本攻击(XSS)、跨站请求伪造(CSRF)、代码注入漏洞和字符编码漏洞等。使用PHP中的特定功能和函数(比如mysql_real_escape_string等)可以帮助程序员写出安全的代码。 

 5. 添加注释 

  代码注释是代码中的重要组成部分,它解释了函数运行的目的,这种注释会在代码以后的维护中提供非常有用的帮助。 

 6. 避免简写标记 

  应使用完整的起始标记,不推荐使用简写的起始标记。 

 7. 用单引号代替双引号 

  由于PHP会对双引号中的内容进行变量搜索,为了避免这种搜索带来的性能影响,程序员应该使用单引号引用字符串。 

 8. 转义输出 

  应该在htmlspecialchars函数中使用ENT_QUOTES参数,保证单引号(')也可以被转义。尽管没有规定必须这样做,但这是一个好习惯。 

 9. 使用逗号隔开字符串输出 

  字符串连接符(.)可以将单一的字符串传递给echo语句进行输出,与之相比,逗号可以实现echo语句中字符串的分别输出,这对PHP来说是一个性能改善。 

 10. 在输出前检查传递值 

  应该记得在输出前检查$_GET['query'] 的传递值。使用isset函数或是empty函数可以检查变量值是否为空。

Apache日志配置详解

Apache日志按时间分段记录

在apache的配置文件httpd.conf中找到
ErrorLog logs/error_log及CustomLog logs/access_log common

Linux系统配置方法:
将其改为
ErrorLog “| /usr/local/apache/bin/rotatelogs /home/logs/www/%Y_%m_%d_error_log 86400 480″
CustomLog “| /usr/local/apache/bin/rotatelogs /home/logs/www/%Y_%m_%d_access_log 86400 480″ common

Windows系统下配置方法:
ErrorLog “|bin/rotatelogs.exe logs/site1/error-%y%m%d.log 86400 480″
CustomLog “|bin/rotatelogs.exe logs/site1/access-%y%m%d.log 86400 480″ common

其中common为日志记录格式里设置的名称。
若有多个站点,则应将以上配置写到各站点的VirtualHost节点中,这样才会分开文件记录各站点日志。

附rotatelogs说明

rotatelogs logfile [ rotationtime [ offset ]] | [ filesizeM ]

选项
logfile
它加上基准名就是日志文件名。如果logfile中包含’%’,则它会被视为用于的strftime(3)的格式字串;否则,它会被自动加上以秒为单位的.nnnnnnnnnn后缀。这两种格式都表示新的日志开始使用的时间。
rotationtime
日志文件回卷的以秒为单位的间隔时间,86400 表示一天,即每天生成一个新的日志文件。
offset
相对于UTC的时差的分钟数。如果省略,则默认为0,并使用UTC时间。比如,要指定UTC时差为-5小时的地区的当地时间,则此参数应为-300,北京时间为+8时间,应设置为480。这样日志里的时间才会和服务器上的时间一致,方便查看日志。
filesizeM
指定回卷时以兆字节为单位的后缀字母M的文件大小,而不是指定回卷时间或时差。
 

apache日志记录格式的设置

定制日志文件的格式涉及到两个指令,即LogFormat指令和CustomLog指令,默认httpd.conf文件提供了关于这两个指令的几个示例。

LogFormat指令定义格式并为格式指定一个名字,以后我们就可以直接引用这个名字。CustomLog指令设置日志文件,并指明日志文件所用的格式(通常通过格式的名字)。

LogFormat指令的功能是定义日志格式并为它指定一个名字。例如,在默认的httpd.conf文件中,我们可以找到下面这行代码:

LogFormat "%h %l %u %t "%r" %>s %b" common
该指令创建了一种名为“common”的日志格式,日志的格式在双引号包围的内容中指定。格式字符串中的每一个变量代表着一项特定的信息,这些信息按照格式串规定的次序写入到日志文件。

Apache文档已经给出了所有可用于格式串的变量及其含义,下面是其译文:
%…a: 远程IP地址
%…A: 本地IP地址
%…B: 已发送的字节数,不包含HTTP头
%…b: CLF格式的已发送字节数量,不包含HTTP头。例如当没有发送数据时,写入‘-’而不是0。
%…{FOOBAR}e: 环境变量FOOBAR的内容
%…f: 文件名字
%…h: 远程主机
%…H 请求的协议
%…{Foobar}i: Foobar的内容,发送给服务器的请求的标头行。
%…l: 远程登录名字(来自identd,如提供的话)
%…m 请求的方法
%…{Foobar}n: 来自另外一个模块的注解“Foobar”的内容
%…{Foobar}o: Foobar的内容,应答的标头行
%…p: 服务器响应请求时使用的端口
%…P: 响应请求的子进程ID。
%…q 查询字符串(如果存在查询字符串,则包含“?”后面的部分;否则,它是一个空字符串。)
%…r: 请求的第一行
%…s: 状态。对于进行内部重定向的请求,这是指*原来*请求 的状态。如果用%…>s,则是指后来的请求。
%…t: 以公共日志时间格式表示的时间(或称为标准英文格式)
%…{format}t: 以指定格式format表示的时间
%…T: 为响应请求而耗费的时间,以秒计
%…u: 远程用户(来自auth;如果返回状态(%s)是401则可能是伪造的)
%…U: 用户所请求的URL路径
%…v: 响应请求的服务器的ServerName
%…V: 依照UseCanonicalName设置得到的服务器名字 
 

在所有上面列出的变量中,“…”表示一个可选的条件。如果没有指定条件,则变量的值将以“-”取代。分析前面来自默认httpd.conf文件的 LogFormat指令示例,可以看出它创建了一种名为“common”的日志格式,其中包括:远程主机,远程登录名字,远程用户,请求时间,请求的第一 行代码,请求状态,以及发送的字节数。

有时候我们只想在日志中记录某些特定的、已定义的信息,这时就要用到“…”。如果在“%”和变量之间放入了一个或者多个HTTP状态代码,则只有当请 求返回的状态代码属于指定的状态代码之一时,变量所代表的内容才会被记录。例如,如果我们想要记录的是网站的所有无效链接,那么可以使用:
LogFormat %404{Referer}i BrokenLinks

反之,如果我们想要记录那些状态代码不等于指定值的请求,只需加入一个“!”符号即可:

LogFormat %!200U SomethingWrong

 专门记录某个蜘蛛记录

SetEnvIfNoCase User-Agent Baiduspider baidu_robot
LogFormat “%h %t ”%r” %>s %b” robot
linux下
CustomLog “|/usr/local/apache2.2.0/bin/rotatelogs /usr/local/apache2.2.0/logs/baidu_%Y%m%d.txt 86400 480″ robot env=baidu_robot
windows下
CustomLog “|bin/rotatelogs.exe logs/baidu_%Y%m%d.txt 86400 480″ robot env=baidu_robot
这样在logs目录下,就会每天产生baidu_年月日.txt的日志了,每条的记录和下面的类似:
61.135.168.14 [22/Oct/2008:22:21:26 +0800] “GET / HTTP/1.1″ 200 8427

去掉日志中的图片、js、css、swf文件

<FilesMatch ".(ico|gif|jpg|png|bmp|swf|css|js)">
   SetEnv IMAG 1
   </FilesMatch>
  CustomLog "|bin/cronolog.exe logs/cpseadmin/access_%Y%m%d.log" combined env=!IMAG

PHP 获取文件 或 字符串的编码方式

  有时候从文本文档或者其它地方获取到字符串后由于编码的问题,输出的中文等文字会出现乱码,这时可以使用 mb_detect_encoding() 函数来判断字符串是什么编码的,然后用iconv函数转换成与页面一致的编码再输出字符串或者写入数据库。

注意:要把php.ini中 extension=php_mbstring.dll 前的;号去掉,重启apache就可以了。

代码如下: 

PHP代码
  1. <?php   
  2. define ('UTF32_BIG_ENDIAN_BOM'   , chr(0x00) . chr(0x00) . chr(0xFE) . chr(0xFF));   
  3. define ('UTF32_LITTLE_ENDIAN_BOM'chr(0xFF) . chr(0xFE) . chr(0x00) . chr(0x00));   
  4. define ('UTF16_BIG_ENDIAN_BOM'   , chr(0xFE) . chr(0xFF));   
  5. define ('UTF16_LITTLE_ENDIAN_BOM'chr(0xFF) . chr(0xFE));   
  6. define ('UTF8_BOM'               , chr(0xEF) . chr(0xBB) . chr(0xBF));   
  7.   
  8. function detect_utf_encoding($text) {   
  9.     $first2 = substr($text, 0, 2);   
  10.     $first3 = substr($text, 0, 3);   
  11.     $first4 = substr($text, 0, 3);   
  12.       
  13.     if ($first3 == UTF8_BOM) return 'UTF-8';   
  14.     elseif ($first4 == UTF32_BIG_ENDIAN_BOM) return 'UTF-32BE';   
  15.     elseif ($first4 == UTF32_LITTLE_ENDIAN_BOM) return 'UTF-32LE';   
  16.     elseif ($first2 == UTF16_BIG_ENDIAN_BOM) return 'UTF-16BE';   
  17.     elseif ($first2 == UTF16_LITTLE_ENDIAN_BOM) return 'UTF-16LE';   
  18. }   
  19. function getFileEncoding($str){   
  20.     $encoding=mb_detect_encoding($str);   
  21.     if(emptyempty($encoding)){   
  22.         $encoding=detect_utf_encoding($str);   
  23.     }   
  24.     return $encoding;   
  25. }   
  26. $file = 'text1.txt';   
  27. echo getFileEncoding(file_get_contents($file));  // 输出ASCII   
  28. echo '<br />';   
  29.   
  30. $file = 'text2.txt';   
  31. echo getFileEncoding(file_get_contents($file));  // 输出UTF-8   
  32. echo '<br />';   
  33. $file = 'text3.txt';   
  34. echo getFileEncoding(file_get_contents($file));  // 输出UTF-16LE   
  35. echo '<br />';   
  36. ?>   

其中三个文件:text1.txt 、text2.txt、text3.txt,分别以ASCII、UTF-8、UNICODE 的编码方式保存

PHP5.3的VC9、VC6、Thread Safe、Non Thread Safe的区别

  PHP 5.3.1一共有四个版本,VC9 x86 Non Thread Safe、VC9 x86 Thread Safe、VC6 x86 Non Thread Safe、VC6 x86 Thread Safe。

  一、如何选择 PHP5.3 的 VC9 版本和 VC6 版本
  VC6 版本是使用 Visual Studio 6 编译器编译的,如果你的 PHP 是用 Apache 来架设的,那你就选择 VC6 版本。
  VC9 版本是使用 Visual Studio 2008 编译器编译的,如果你的 PHP 是用 IIS 来架设的,那你就选择 VC9 版本。
  二、如何选择 PHP5.3 的 Thread Safe 和 Non Thread Safe 版本
  先从字面意思上理解,Thread Safe 是线程安全,执行时会进行线程(Thread)安全检查,以防止有新要求就启动新线程的 CGI 执行方式而耗尽系统资源。Non Thread Safe 是非线程安全,在执行时不进行线程(Thread)安全检查。
  再来看 PHP 的两种执行方式:ISAPI 和 FastCGI。
  ISAPI 执行方式是以 DLL 动态库的形式使用,可以在被用户请求后执行,在处理完一个用户请求后不会马上消失,所以需要进行线程安全检查,这样来提高程序的执行效率,所以如果是以 ISAPI 来执行 PHP,建议选择 Thread Safe 版本;
  而 FastCGI 执行方式是以单一线程来执行操作,所以不需要进行线程的安全检查,除去线程安全检查的防护反而可以提高执行效率,所以,如果是以 FastCGI 来执行 PHP,建议选择 Non Thread Safe 版本。
  官方并不建议你将Non Thread Safe 应用于生产环境,所以我们选择Thread Safe 版本的PHP来使用。
 

linux vs bsd我们到底选择谁?

注:这篇文章也不知道是什么时候的,仅供参考。

  目前开源操作系统遍地开花。linux阵营rhel,centos,debian,opensuse等等,bsd阵营有freebsd,netbsd,openbsd三侠,我们到底选择谁呢?有些人说freebsd安全性高,稳定性强,有些人说linux性能高,功能更强,按照本来这么多年的亲身体会与研究,翻然醒悟原来,他们没有谁强谁弱,大家由于都是开源的,源代码公开,可以相互学习,很多开发大牛在开发bsd的同时也在开发linux。他们的基础都是数学,你能说西方的数学比东方的数学更高级吗?其实我们应该按需选择,不能片面的说谁比谁好!

           首先咱们说说bsd把,按照性能来说我们可以这样排freebsd > netbsd > openbsd ,按照安全性来我们可以openbsd > freebsd >= netbsd,freebsd可以获得很多硬件开发商的支持,驱动做的更好,比如intel网卡,重要的设备intel官方只支持freebsd 而且freebsd从linux那里学习了很多东西性能是最高的,本人就是很喜欢freebsd因为只有他支持网卡polling 模式对抗小包攻击效果很好,比linux下的NAPI更为成熟高效!但是由于ufs文件系统写性能不如(很多测试证明网上)所以我们一般拿来做读多写少的web服务器或者防火墙、流控!

          而openbsd 则是从netbsd分家出来的一个系统,由于作者的严谨、认真,对安全的狂热,在强调安全比性能重要的场合就最合适不过了,但是和netbsd一样只能自己开发设备驱动,不能得到很多硬件厂商的支持,所以很多新硬件功能不能使用,但是由于安全,小巧一般都是拿来做防火墙,或者安全vpn设备等,如果你硬是要拿来做web或者数据库服务器,只要你不感觉痛苦,我也不反对呵呵..

          至于netbsd其实没有什么太吸引人的地方,除了对多平台的支持能力强之外,性能一般,安全一般,代码要兼顾所有硬件,所以必须简洁,必须考虑兼容性,很保守,安全上还是从openbsd freebsd那里学习。但是一般普遍使用的是通用的x86平台,很少用到那些特殊的嵌入试,或者大型机,所以优势尽无,不建议使用!

          接下来就是linux了,很多人问debian rhel centos到底有什么关系,哪个更好呢!其实所有的linux都是没有本质区别的都是一个linux kernel加上一堆用户态应用程序diy 成的系统,最大的区别就是有些是免费的,有些是提供收费服务的,还有一点就是rhel centos  oracle linux他们是一家人,相比debian支持更多的品牌厂商的专有驱动和固件程序,这些非free的在debian内核中是被除去的,所以debian版权问题更安全,更自由,当然你也可以选择到www.kernel.org下载标准的内核心,本人建议如果你的服务器是品牌服务器使用rhel centos oracle-linux更放心点,如果是自己diy的或者在vps上的系统请使用debian,他会帮你把性能提到最高!

         还有一点是如果你是kvm狂热分子,我建议你使用rhel centos oracl-linux作为kvm基础主机,因为kvm很多开发,测试工作都是在rhel上进行的!其实还有一个选择不同于centos和scientific linux就是oracle linux

由于有大公司的支持我比较喜欢他,下载iso和更新补丁都是免费的,还有uel内核更是优秀,推荐centos scientifc朋友选择他。。

        再来看看整体上linux 和 freebsd的使用方向,由于linux使用了ext4等高级文件系统,读写都很高效,所以linux一般可以做web服务器,数据库服务器最多,而freebsd等做静态web,防火墙,路由器(版权更自由,很多国内网络设备商使用),其他的桌面系统请使用xp!

互联网如何做流量

做流量、做用户不是一劳永逸的,必须是一个机动化、持久化、长期的运作。

为什么要做流量?

首先,做流量本质上是做用户,做产品。这不是雇几个小孩,花钱买广告, 或雇几个商务运营就可以自动解决的事情。本质上需要CEO、产品经理自己去想,而这里面其实误区非常多。

一个错误是,简单化冲指标。当年的互联网公司,无论是视频网站还是财经网站,经常在网盟里放一些丰胸、裸女这种火爆的标题,把流量导到自己的网站。他们投入很多来提升自己网站近期的运营指标。但是,这真的会带来实质性的效果吗?道理听起来很简单,一到执行层面是非常容易忘记的。实际上互联网的推广,包括前段时间团购网站的推广,80%甚至90%花出去的钱没有意义。

另一个错误是忽视产品。产品、用户获取和运营实际上是三位一体的。不少产品出身的创始人,相信只要产品本身做好了,接下来推广就很简单了。作流量实际上就是产品如何到达用户,这和产品本身是一样重要的,也是个产品问题。比如Zynga, 他的早期游戏本身其实和之前的没有区别,但它是第一批很好的利用了Facebook把游戏从核心玩家到达了蓝海用户. 新的用户到达方法本身就能成为巨大的创新。

第二个基本问题,是什么时候开始花钱获得用户。大部分做流量的方法其实不用花钱。靠自己产品的性能和运营获得用户,本来是获取用户的正当方法,但是为什么要花钱做用户?答案可能有两个:一,加速增长。二,需要种子用户。

这两个都是很有道理的答案。实际操作过程中有两种情况,一是当你获取的用户能够挣钱,回报多于付出的话,你是可以无限制地花钱获得用户,这是毋庸置疑的。很多网游都是这样。

但是如果你赔钱获取用户,你的目标应该是达到自增长的一个点。按照互联网的习惯,当一个品牌或用户群达到一定密度之后,接下来就能实现一定的自增长。如果不是特别乱的情况下,真实的用户、活跃的用户达到百万级别,或者口碑达到一定的级别,加上真实的美誉度,真实的搜索指数能过万,产品本身又好,就能获得自增长。而去做用户增长,目的就是为了尽快达到这个自增长点。

如果是这样的话,其实目的就很明确。你要搞清楚那个点是什么?达到那个点需要的真实指标是什么?如果你做的所有推广是有助于达到那个点的话,就是有效的;如果无助于你达到那个点,比如当年某财经门户找了一些裸女图片放在网络上吸引点击,虽然指标是达到了,但实际上对你积累真实指标达到那个点没有任何帮助,这就属于完全白费。

做流量的三个“相对真理”

最基本的理念梳理完毕之后,接下来就是我自己这么多年总结的几个相对真理吧。

先说一次传播。一次传播的第一个绝对真理是,在任何一个特定的方法和特定的渠道内你能获取的总流量是有限的,而且你想获取的越多,它的单价越贵,成本越高。

无论是门户网站、搜索引擎还是其他,符合你目标的总用户就是这么多。以搜索引擎为例,里面有最适合你的和最便宜的关键字,比如,你投资一个关键字,搜索流量一天就五千个,这些获取过来是最便宜的。但是如果你想一天获取一万个流量,那第二个五千流量就去找跟你重合度更低的关键字,但是跟你的用户匹配比例更低,可能拍卖价格更高,效果更差。总之,如果你想再获得五千个流量的话,就更糟糕。

这就导致两个现象,A,你对于获取流量必须要有非常清晰的认识;B,你获取流量的渠道必须是多元化的。

第二个相对真理是,所有的流量有通用的和专用的区别。你从各种各样的用户入口获得所需要的流量,可以是免费的,可以是收费的,但是都要付出代价。这些资源交换的代价里,凡是只有你才能用、而别人用起来不方便或者对别人没有用的流量,反而是越便宜的流量。凡是对所有人都有用、人人拿出来都可以给自己引导用户的,则是非常贵的流量。

举一个例子,谁放到hao123首页,对它都有用,这样的位置就很贵。但是早年的小说网站非常不值钱,五千块就可以把千万级别流量的小说网站的关键位置包月。因为在那个年代,那个流量无论放什么广告,做什么推广都没有用。但是那个流量后来在推广页游却非常有用。

第三个相对真理是,任何流量的做法都不是长期有效,都有时间不长的窗口期,衰退期,而最早发现某个流量的最好挖掘方法的人受益最多。这种方法很快就会达到一个很高的价格,然后逐渐到了衰退期。

比如早年我在谷歌的时候,2006年获取网吧流量是非常便宜的。一是没有人获取,二是没有人知道怎么从网吧把流量给装回来。很多人不但不知道价格,也不知道方法。包括2003年的时候,最早一波知道怎么做搜索引擎优化的站长,用得最好的人占很大的优势。

但是,用户的入口在不断的变化,用户入口本身的规则和方法也在不断变化。所以做流量、做用户不是一劳永逸的,必须是一个机动化、持久化、长期的运作。

每个月都会有一些方法从非常划算变成一般,甚至有些会被取代,然后一些新的渠道和方法会萌芽。比如腾讯开放微信接口了,苹果发布ios6了,任何变化都要想一想和我有什么关系。

具体细节和做法

1、有效用户是谁?

mysql、windows安全漏洞预警公告

上周mysql、windows远程连接分别出现了很严重的漏洞,请开发者尽快进行相关修复和升级工作。漏洞详情如下:
安全漏洞一:

【漏洞发布日期】
2012年6月11日
【受影响的软件及系统】
Ø MySQL AB MySQL< 5.6.6
Ø MySQL AB MySQL< 5.5.24
Ø MySQL AB MySQL< 5.1.63
Ø MariaDB MariaDB< 5.5.23
Ø MariaDB MariaDB< 5.3.6
Ø MariaDB MariaDB< 5.2.12
Ø MariaDB MariaDB< 5.1.62
Ø 其他说明:
Mysql官方发布的二进制包不受此问题影响。而在一些开启了glibc sse优化的Linux平台上,gcc编译时选择了-fno-built选项(不使用内置函数)的mysql版本则会受此问题影响。
【未受影响的软件及系统】
受影响的软件及系统除外。
【漏洞描述】
用户验证绕过漏洞,可导致不用密码以管理员身份登录。在存在漏洞的mysql中,用户经过平均256次左右的尝试,使得检测用户登录密码的函数memcmp()返回值为0(当返回值为0时,说明用户输入的密码与存储的秘密一致),可以无需密码成功远程登录数据库。
【漏洞检测方法】
该漏洞可以使用以下其中一种发法检测,如下:
Ø 验证方法1:
$ for i in `seq 1 1000`; do mysql -uroot –password=bad -h 127.0.0.1 2>/dev/null; done
mysql>
Ø 验证方法2:
#!/usr/bin/python
import subprocess
while 1:
subprocess.Popen("mysql -u root mysql –password=blah", shell=True).wait()

relik@stronghold:~# pythonmysql_bypass.py

执行以上方法后,若能够登录MYSQL,表明该系统存在漏洞并能够利用。
【建议修补方案】
升级MYSQL > 5.6.6 版本
【参考链接】
Ø http://www.nsfocus.net/vulndb/19767
Ø http://seclists.org/oss-sec/2012/q2/493

安全漏洞二:
【漏洞发布日期】
2012年6月13日
【受影响的软件及系统】
Ø Microsoft Windows7
Ø MicrosoftWindows Server 2003 Datacenter Edition
Ø MicrosoftWindows Server 2003 Enterprise Edition
Ø MicrosoftWindows Server 2003 Standard Edition
Ø MicrosoftWindows Server 2003 Web Edition
Ø MicrosoftWindows Server 2008
Ø MicrosoftWindows Storage Server 2003
Ø MicrosoftWindows Vista
Ø MicrosoftWindows XP Home Edition
Ø MicrosoftWindows XP Professional
【未受影响的软件及系统】
受影响的软件及系统除外。
【漏洞描述】
Windows系统的远程终端服务存在安全漏洞,攻击者在可以连接远程终端服务端口的情况下,通过特殊构造的数据包可获取系统管理员权限,执行远程代码等非授权操作。
【漏洞检测方法】
可以通过以下方法检测是否受影响:
Ø 是否安装了微软的补丁KB2685939;
Ø 若已安装,则不受该漏洞影响;若未安装该补丁,且开启了远程桌面,则受该漏洞影响。

新网站SEO优化要避开的五个雷区

  利用搜索引擎在互联网上查找信息早已成为人们获取信息的最主要方式,伴随着搜索引擎技术的不断进步,网站要被搜索引擎收录更多和获取更好排名的难度越来越大。作为网站优化人员,必须要熟悉搜索引擎的特点,尽量避免使用对搜索引擎不友好的优化方式,以获得搜索引擎的青睐。

新站优化雷区一:网站标题和版式经常改动

对于新站来说,网站的权重很低甚至还在搜索引擎的考察期。如果这个时间对网站标题和版式频繁改动,会使得搜索引擎认为你的网站还没有完成,那么搜索引擎需要重新认识你的网站,就还需要重新审核和验证,甚至会降权一段时间才会慢慢被认可。一般来说现在百度对新站的考察期大体在2-4个星期,这个时间里尽量不要动标题和版式。

新站优化雷区二:采集转载内容过多

采集和转载内容过多不利于网站权重的提升,说到底搜索引擎其实还是喜欢新鲜事物,也就是我们通常所说的“原创”。现在很多站长利用软件采集更新网站并不是长久之计,这种采集来的文字即使被收录,对增加网站权重也没什么帮助,而且过段时间就会被清除掉。所以,还是那句话,“原创才是王道”。

新站优化雷区三:短时间内外链大量增长

都知道外链的重要性,那是不是外链越多越好呢?不一定。外部链接的建设是需要技巧的,新站和老站在外链建设问题上要区别对待,新站在建设初期因为权重不高,外链也不宜过多,而且要循序渐进。在搜索引擎的眼里,一个新站是不可能在短时间内获得很多的外部链接的,短时间内外链大量增长很可能会被搜索引擎认为是在作弊。等到网站收录稳定以后,外部链接每天增加的数量和频率也尽量要保持一致。

新站优化雷区四:关键词密度过大或存在不相关的关键词

关于关键词的密度,经过众多站长们的研究分析发现网站关键词的密度控制在2%~8%是最合理的,也是搜索引擎最能接受的。关键词的密度并不是越大越好,是自然最好,即恰当地表达,使行文流畅。再者,有些站长为了吸引流量,故意在网页中布置一些社会热门关键词,而这些关键词与网页内容其实是没有关系的,这样的情况也会被搜索引擎认为是在作弊。比如你的网站明明是手机类的网站,却突然出现很多“金正日逝世”的新闻,这明显是不搭调的。所以,在关键词这里要掌握密度不要过大,同时不要大量存在于网站内容不相关的关键词。

新站优化雷区五:网页中有隐藏信息

网页中有用户看不见但搜索引擎能识别的内容,这些内容主要是隐藏的文字或者链接,在SEO中这属于“黑帽”。其实无论你是使用什么样的方法,比如使用和背景色相同的文字、隐藏的文字、超小号的文字还是滥用图片,都会被搜索引擎认为是作弊的行为,一旦认定你的网站在作弊,举例被降权也就不远了。

综上所述,做网站优化还是要踏踏实实的,不要急功近利,多考虑些用户体验,多做对用户有实际价值的内容,这样的网站才能有持久的生命力。

国内十大OA在线试用地址

通达OA:功能比较全面,简单、易用,但部分功能不够细致、深入,实用性有所欠缺

试用地址:http://tongda2000.com

承元OA:典型的平台型OA,个性化和二次开发很强大,貌似不喜欢做推广,认知度仅限于业内

试用地址:http://www.chysoft.net

金和OA:广告打得很响,名气很大,功能一般,个人觉得对不起那价格

试用地址:http://www.jh0101.com

用友OA:借助用友的名气,用友ERP还行,但用友致远OA,本人有所保留

试用地址:http://www.seeyon.com/

泛微OA :一直摆脱不了盗版的疑云,高端版本做得还行

试用地址:http://www.weaver.com.cn/

蓝凌OA:知识管理做得不错,但价格偏高

试用地址:http://www.landray.com.cn

升蓝OA:有不少国际知名企业的成功案例,同样价格偏高

试用地址:http://www.hi-blue.com/gb/oa/oa.htm

万户OA:有比较全面的行业解决方案,值得借鉴

试用地址:http://www.whir.net

伟峰OA:号称工作过程管理专家,这年头,专家不好当哦

试用地址:http://www.winfreeinfo.com/

 

泛东OA:强调动态组织行为管理,将柔性管理引入OA系统

试用地址:http://www.alleast.com.cn/