二月 4th, 2012 · by huangdijia · PHP/PHP框架

ThinkPHP 3.0RC2 ChangeLog

[系统]
[修正] 修正R方法的第二个参数传人数组
[修正] 修正部署模式下的模版编译问题。
[新增] 添加项目的core.php配置文件,用于追加项目核心编译列表文件
[新增] 添加layout方法 用于控制布局入口的文件
[新增] functions函数库添加trace函数,用于页面Trace信息设置和自定义添加显示 并调整页面Trace行为扩展和模板,改为调用trace方法
[改进] 优化alias_import方法
[改进] 改进import的项目类库目录判断
[改进] Think类的buildApp方法改进 模式别名定义和项目别名定义支持同时定义 取消模式的公共文件定义,直接在核心文件列表中加载即可
[改进] 系统函数库增加session函数用于操作session App类改进对session的支持
[改进] 改进View类,如果设置模板引擎为PHP的话 则不调用view_parse标签行为扩展
[改进] 项目自定义trace信息配置文件会合并到系统默认页面Trace中
[改进] LOG类完善 支持配置不同的日子记录方式和其他参数 惯例配置文件增加LOG_TYPE、LOG_DEST和LOG_EXTRA配置 LOG_RECORD_LEVEL 参数更名为LOG_LEVEL
[改进] 优化import方法的文件导入 如果存在类名冲突则不导入
[改进] 改进系统函数库的load方法
[改进] runtime和alias文件添加访问检测
[改进] 修正部署模式下面开启页面trace后 exec运行时间为负数的错误
[改进] 修正Widget类对于think引擎的判断
[改进] 系统路径常量允许被重定义
[删除] 去掉runtime文件中的mkdirs函数

二月 4th, 2012 · by huangdijia · HTML(5)/CSS

这个很小的 iframe 标签(当然了,实际上它运行起来并不小)是一个强大到足以让一个64位的Win7系统崩溃的标签,它将导致 Win7 发生著名的蓝屏错误 Blue Screen Of Death (BSoD). 该漏洞是由 w3bd3vil 报告的。该漏洞在64位的Win7下的Safari 浏览器测试中招,我很讨厌蓝屏,因此没有测试其他浏览器。微软正在进一步验证该漏洞,下面是关于该漏洞的一些技术细节:

<iframe height='18082563'></iframe>

注意:请为自己的测试负责.

描述:
该漏洞是由于 win32k.sys 的一个错误导致内存的崩溃,当页面上包含一个 iframe,其 height 属性是个非常大的值时该错误就会发生。

目前该漏洞仅存在于64位的win7系统。

解决方案:
目前尚无有效方案

一月 17th, 2012 · by huangdijia · MySQL数据库技术, PHP/PHP框架

数据库是Web大多数应用开发的基础。如果你是用PHP,那么大多数据库用的是MySQL也是LAMP架构的重要部分。PHP看起来很简单,一个初学者也可以几个小时内就能开始写函数了。但是建立一个稳定、可靠的数据库确需要时间和经验。下面就是一些这样的经验,不仅仅是MYSQL,其他数据库也一样可以参考。

1.使用MyISAM而不是InnoDB
MySQL有很多的数据库引擎,单一般也就用MyISAM和InnoDB。
MyISAM 是默认使用的。但是除非你是建立一个非常简单的数据库或者只是实验性的,那么到大多数时候这个选择是错误的。MyISAM不支持外键的约束,这是保证数据 完整性的精华所在啊。另外,MyISAM会在添加或者更新数据的时候将整个表锁住,这在以后的扩展性能上会有很大的问题。
解决办法很简单:使用InnoDB。

一月 13th, 2012 · by huangdijia · PHP/PHP框架

一直使用ThinkPHP,通过乌云有向提交了ThinkPHP XSS攻击的bug,抽时间看了一下。
原理是通过URL传入script标签,ThinkPHP异常错误页面直接输出了script。

原理:

http://ask.lenovo.com.cn/index.php?s=1%3Cbody+onload=alert(1)%3E

其中m的值是一个不存在的module,同时是一个完全的script,在异常错误页面中被执行实现XSS跨站攻击。

防范方法
找到异常错误页面模板ThinkException.tpl.php(2,x),think_exception.tpl(3.x)有两个地方要修改:

第57行 echo($_SERVER['PHP_SELF'])
改为 echo strip_tags($_SERVER['PHP_SELF'])
第62行 echo $e['message']
改为 echo strip_tags($e['message'])

另外,马上要发布的3.0官方已经对TP变量GROUP_NAME,MODULE_NAME,ACTION_NAME,__URL__,__SELF__,__APP__,$_SERVER['PHP_SELF']做了安全处理。

PS:安全不是框架的责任,大家在开发的时候须自己注意。

一月 12th, 2012 · by huangdijia · 收藏夹

executables_list:
agrep 3.37
ansi2knr
basename 1.9.4
bash 2.03
bc 1.05
bison 1.28
bunzip2 1.0.1
bzip2 1.0.1
bzip2recover 1.0
cat 2.0
chgrp 3.16
chmod 3.16
chown 3.16
cksum 2.0
cmp 2.7
comm 2.0
compress 2.0
cp 3.16
csplit 2.0
curl 7.15.0
cut 2.0
cvs 2.0.41a
dc 1.2
dd 3.16
df 3.16
diff 2.7
diff3 2.7
dircolors 3.16
dirname 1.13
dos2unix
du 3.16
egrep 2.4.2
env 1.9.4
expand 5.1.2600.0
expr 1.9.4
factor 1.13
fgrep 2.4.2
flex 2.5.4
fmt 2.0
fold 2.0
fsplit
gawk 3.1.0
gclip 1.0
gow
gplay
grep 2.4.2
gsar 1.12
gunzip 1.2.4
gzip 1.2.4
head 2.0
id 1.9.4
indent 2.2.6
install 3.16
join 2.0
jwhois 2.4.1
less 340
lesskey 340
ln 3.16
logname 1.9.4
ls 3.16
m4 1.4
make 3.78.1
md5sum 2.0
mkdir
mkfifo
mknod 3.16
mv 3.16
mvdir 3.16
ncftp 3.1.8
nl 2.0
od 2.0
pageant 0.60
paste 2.5
patch 2.0
pathchk 1.9.4
pclip 1.0
plink 0.60
pr 2.0
printenv 1.9.4
printf 1.9.4
pscp 0.60
psftp 0.60
putty 0.60
puttygen 0.57
pwd
recode 3.6
rm 3.16
rman 3.0.7
rmdir
rsync 2.6.3
scp
sdiff 2.7
sed 3.02
seq 1.13
sftp
sh
shar 4.1
sleep 1.9.4
sort 2.0
split 2.0
stego
su 1.9.4
sum 2.0
sync 3.16
tac 2.0
tail 2.0
tar 1.12
tee 1.9.4
test 1.9.4
touch 3.16
tr 2.0
type
uname 1.9.4
unexpand 2.0
uniq 2.0
unix2dos
unrar 3.4.3
unshar 4.1
unzip 2.3
uudecode 4.1
vim 6.3
wc 2.0
wget 1.8.1
whereis
which 2.4
whoami 1.9.4
xargs 4.1
yes 1.9.4
zcat 1.2.4
zip 3.0

一月 12th, 2012 · by huangdijia · Web服务器

第一步:修改更新源为debian 6.0

# vi /etc/apt/sources.list
deb http://ftp.us.debian.org/debian/ squeeze main
deb-src http://ftp.us.debian.org/debian/ squeeze main
deb http://security.debian.org/ squeeze/updates main
deb-src http://security.debian.org/ squeeze/updates main
deb http://volatile.debian.org/debian-volatile squeeze/volatile main
deb-src http://volatile.debian.org/debian-volatile squeeze/volatile main

第二步:更新源及软件包

apt-get update
apt-get install apt dpkg aptitude
apt-get dist-upgrade

第三步:重启

reboot

第四步:检查升级后系统运行情况

lsb_release -a
netstat -tulpn
tail -f /var/log/messages
other log files for linuxany.com
一月 12th, 2012 · by huangdijia · Web服务器

最近在一台古董服务器(Centos5.4)上通过yum安装一些php需要的库文件时发生错误:

# yum update
Setting up Update Process
Setting up repositories
Segmentation fault

开始以为是yum源的问题,折腾了好半天,发现原来是我们安装的zlib1.2.5时指定了安装目录(./configure -prefix=/usr)对yum产生了影响,所以总结如下:
1、安装完系统后,运行一次#yum update(yum产生了缓存) ,然后再安装zlib1.2.5,之后如果不执行#yum clean all,则一直可以使用yum,不会报段错误

2、如果在执行yum前已经安装了zlib1.2.5,则需要做如下处理

#cd /usr/lib
#ln -sf libz.so.1.2.3 libz.so
#ln -sf libz.so.1.2.3 libz.so.1

但此后zlib就使用了旧版本,在成功执行了yum后,还需要将软连接更改

#cd /usr/lib
#ln -sf libz.so.1.2.5 libz.so
#ln -sf libz.so.1.2.5 libz.so.1

至此,问题解决了!

一月 11th, 2012 · by huangdijia · 收藏夹

如果你是 Linux 及 Windows 的双料用户,而且是深度 CLI 控的话,可能会像我一样在用 Win 的时候会不知不觉间输入一些 Linux 的命令, 当然这肯定无法执行的。现在,有一个名为 Gow 的工具包就可以发挥作用了。

Gow 是一个相当于 Cygwin 的轻量级替代品,里面封装了130 多个的开源工具及 Linux 命令,其中包括:

Shell : bash , zsh
压缩工具: gzip, zip, bzip2, compress
SSH: putty, psftp, pscp, pageant, plink
下载工具 : cURL, wget
FTP: NcFTP
编辑器 :vim
字处理 : grep, agrep, less, cat, tail, head
文件工具: mv, cp, du, ls, pwd, rmdir, whereis
开发工具: make, diff, diff3, sleep, cvs, dos2unix, unix2dos
用户下载一个 Win 安装程序并安装后,它会自动设置好相应的环境变量,这样无论在哪个目录下都能使用这些命令了。

主页:http://wiki.github.com/bmatzelle/gow/
安装程序下载:http://github.com/bmatzelle/gow/downloads

安装完后,就可以打开 CMD 窗口来使用这命令及工具了。

原文:http://www.oschina.net/question/12_10312

一月 10th, 2012 · by huangdijia · 收藏夹

在我的代码旅程和编程经历中,已经遭遇很多奇特的对手,还有更为奇特的盟友。我至少发现有5种代码勇士,有些是出色的战友,其他则似乎都在搅黄我的每个计划。不过他们都在软件开发的万神殿上都有一席之地。如果没有不同编程风格的良好组合,你可能会发现你的项目要不就是耗时过长,要不就是太不稳定或太过完美而无人去做。

不过他们都在软件开发的万神殿上都有一席之地。如果没有不同编程风格的良好组合,你可能会发现你的项目要不就是耗时过长,要不就是太不稳定或太过完美而无人去做。

1. The duct tape programmer 喉咙贴了胶带的程序员
The code may not be pretty, but damnit, it works! 代码或许不漂亮,但能用!
这种家伙是公司的基石。代码有问题的时候,他能快速补漏,下不再犯。当然他并不关注代码看起来怎么样,是否容易使用,以及其他琐碎的问题,但是他能搞定,没有一堆废话或不会唧唧歪歪。用这种程序员的最佳方式是,你指出问题后走开就可以了。

一月 9th, 2012 · by huangdijia · PHP/PHP框架, Web服务器

今天早上,升级bugfree至2.1.3后发现勾选“记住密码”会导致无法登录,但是php、nginx日志并没任何发现。
看了一下源码发现2.1.3版本开始使用了mcrypt类库:

但是从bugfree更新日志中并没有提到。
解决办法:
重新编译php开启mcrypt扩展,但在此之前要先安装libmcrypt-dev。步骤如下:

  1. apt-get install libmcrypt-dev
  2. ./configure [省略] –with-mcrypt
« Older Entries
Free WordPress Themes
WordPress Themes