[译]鲜为人知的PHP OO模型 “功能(Features)”

原文地址:http://www.sitepoint.com/lesser-known-features-of-phps-oo-model/

(刚开始翻译,其中诸多地方翻译的不是很好,不幸被大神看到请使劲拍~~)

如今大多数的PHP应用都使用面向对象模式开发,而且PHP的开发者对OOP概念都有不错的理解。本文将拓展你的认知,并告诉你一些技巧和潜在的误区。

接口的继承以及 Traits

让我们从熟悉的领域“继承”开始。PHP接口允许我们定义一个约束,任何实现这个接口的对象必须在他自身实现这个接口(中的抽象方法)。但是你知道接口可以继承其他接口并且父或子接口都能被类实现吗?

考虑下面这段代码,定义一个接口,另一个接口继承他,并且用一个类实现这个子接口:

<?php
interface Reversible
{
    function reverse($target);
}
 
interface Recursible extends Reversible
{
    function recurse($target);
}
 
class Tricks implements Recursible
{
    public function recurse($target) {
        // something cool happens here
    }
 
    public function reverse($target) {
        // something backward happens here
    }
}

Continue reading

师夷长技 | wwpeng | | (1) |

[原]Ubuntu Linux 系统备份以及恢复

ubuntu-system-backup

a):备份

该shell脚本 基于bash环境,会将 / /home /boot /usr /var 等目录 打包成压缩包

使用之前 之需要配置好 shell脚本当中的 备份文件的存放目录路径 以及 sudo 命令的用户密码 之后脚本可以全自动执行操作,备份位置最好是media目录中挂在的其他硬盘分区,或者其他存储介质

脚本已经排除了很多不需要备份以及不能备份的目录,这些都不影响,只要打包以上目录,就可以将你的系统整个备份了。

虽然linux系统一般不会产生多少垃圾文件 ,但是ubuntu内核,以及其他自动更新后留下的更新包不会被删除,so…打包备份后会减少不小的文件尺寸。关于ubuntu 的系统清理。大家自行google,很多朋友都在博客中记录了各种清理命令,我就不再复制了~~~

PS:特别注意

该脚本需要 ctrl+alt+F1 切换到命令行模式下执行,因为执行过程中会停止lightdm桌面服务,执行完成后,因为桌面服务已经停止所以不能切换回原桌面

只能 sudo service lightdm start 打开新的服务

Continue reading

Linux/Shell | wwpeng | | (0) |

[译]修复PHP HashTable碰撞DOS 引入新的远程访问漏洞

原文:http://thexploit.com/sec/critical-php-remote-vulnerability-introduced-in-fix-for-php-hashtable-collision-dos/

(初步练习翻译,各种不当求大神指出~)

Stefan Esser (@i0n1c)

一个安全修复引入另外的漏洞

今天, Stefan Esser (@i0n1c) 提交了一个 PHP 5.3.9 (updateassigned CVE-2012-0830) 版本下重要的远程利用漏洞。有趣的是,这个漏洞是为了修复十二月提交的哈希碰撞导致拒绝服务 DOS (CVE-2011-4885) 的漏洞而引入的。

关于漏洞的修复

为了防止哈希碰撞这个修复在 php.ini 配置文件中引入了一个新的参数:
max_input_vars

这个配置参数限制了请求提交的变量的数量(e.g. http://request.com/foo.php?a=1&b=2&c=3)。默认值是1000。

这个修改在文件 php_variables.c 的方法 php_register_variable_ex 中。

通过这个方法,PHP会“注册”所有提交过来的变量。

if (sapi_module.input_filter(PARSE_POST, var, &val, val_len, &new_val_len TSRMLS_CC)) {
    php_register_variable_safe(var, val, new_val_len, array_ptr TSRMLS_CC);
}

Continue reading

师夷长技 | wwpeng | | (0) |