WordPress SAE去掉index.php实现自定义固定链接
如果在SAE上安装了wordpress,想实现自定义固定链接(如“/%year%/%monthnum%/%postname%/”)时,却发现点击页面会出现404 Not Found
这里有一种方案,登录SAE后台,点击“编辑代码”,然后修改“xxx.config.yaml”(xx为你的应用名称)
在version:1下面添加一行代码:
- rewrite: if( !is_file() && !is_dir()) goto "index.php?%{QUERY_STRING}"
点击“SAVE”然后刷新页面,点击链接就可以看到内容了。
转自 http://down.chinaz.com/try/201110/1232_1.htm
ThinkPHP framework 任意代码执行漏洞预警
各位tp开发者注意的,tp有漏洞,注意打补丁了。
ThinkPHP是一个国内使用很广泛的老牌PHP MVC框架。貌似国内有不少创业公司或者项目都用了这个框架。
最近官方发布了一个安全补丁,官方表述是:该URL安全漏洞会造成用户在客户端伪造URL,执行非法代码。
可是貌似大多数开发者和使用者并没有注意到此漏洞的危害性,应者了了,更不用说有多少人去升级了。随后我对其进行了分析,发现此问题果然是一个非常严重的问题,只要使用了thinkphp框架,就可以直接执行任意php代码。特此发帖预警各位。
我们来分析一下官方的补丁:
/trunk/ThinkPHP/Lib/Core/Dispatcher.class.php
125 - $res = preg_replace('@(w+)'.$depr.'([^'.$depr.'\/]+)@e', '$var[\'\\1\']="\\2";', implode($depr,$paths));
125 + $res = preg_replace('@(w+)'.$depr.'([^'.$depr.'\/]+)@e', '$var[\'\\1\']=\'\\2\';', implode($depr,$paths));
这个代码是把pathinfo当作restful类型url进行解析的,主要作用是把pathinfo中的数据解析并合并到$_GET数组中。
然而在用正则解析pathinfo的时候,主要是这一句:
$res = preg_replace('@(w+)'.$depr.'([^'.$depr.'\/]+)@e', '$var[\'\\1\']="\\2";', implode($depr,$paths));
这里明显使用了preg_replace的/e参数,这是个非常危险的参数,如果用了这个参数,preg_replace第二个参数就会被当做php代码执行,作者用这种方式在第二个参数中,利用PHP代码给数组动态赋值。
'$var[\'\\1\']="\\2";'
而这里又是双引号,而双引号中的php变量语法又是能够被解析执行的。因此,攻击者只要对任意一个使用thinkphp框架编写的应用程序,使用如下方式进行访问,即可执行任意PHP代码:
index.php/module/action/param1/${@print(THINK_VERSION)}
由于是双引号执行,这里为了保险起见,不给出更有危害性的代码,利用这个还是需要点技巧的。
总之这个问题非常严重,找了一下,发现目前没有修补漏洞的网站还是很多的。而ThinkPHP框架的特征其实非常好识别,有意者直接写个scanner进行扫描也未必不可能。
为了不造成更大损失,特地发帖希望引起各位使用thinkphp做开发的同学关注。尽早升级官方的安全补丁
转自 http://zone.wooyun.org/index.php?do=view&id=44
ubuntu常用软件安装
QQ安装:
1、这里安装的是gtk-qq
GTKQQ是一款基于 webqq 协议,使用 gtk+ 开发的 linuxqq 客户端,目前已经能实现简单的通讯功能:
关于新工作—-和一些phpexcle的问题
又差不多一个月没写博客了,最近进了新公司,一直在赶一个项目,基本上每天8点下班,回到家基本上9.30到10点了,唉,累死了,感觉有点像农民工了,虽然说做的都是一些基本的东西,但是用久了框架发觉自己的基础慢慢的陌生了,就像是站在云端一样,感觉弄一下基础的也好,嗯,心态最重要….2012-3-12进了新公司,请了一次假回学校考试,马克思、近代史,你懂得…. 然后,然后,就一直上班到昨天啦,擦,连上8天班,TNND,累死哥了,进了新公司,认识了阿杰,世勇,明镜,还有一个帅哥,又香(mm来的,说实话,第一次听到这个名字真的很奇怪,为啥叫这个名字呢?思考ing),candy(mm),没想到两个MM是93的,不由感叹,唉,哥也老咯,嗯,最后三个BOSS,Andy,IVan,Terry,听同事说了公司以前的事,希望这三个老板有自知之明吧,毕竟我们都是打工的,也要靠这份工资生活,希望以后能准时出粮吧,thx.嗯,对了,差点忘了我们公司的前台,蒲林,嘎嘎,也是个MM,有钱女,哈哈,各位有feeling的快点咯哦。嗯,最近的状况就是这样。
说说今天写博客的目的吧,就是昨天在弄一个导出报表的东西,但是本地(公司机子,我自己的机子)测试都OK,但是就是上传到服务器上就有问题,显示乱码,而之前,阿俊给我一个导出CSV的代码,测试了一下,当时发觉如果输出为slx时,只会在第一个单元显示,第二个的显示不了(问题1),最后选择了PHPEXCEL这个库类,在本地弄好后,上传到vps就乱码,最后找了些资料,发觉其实阿俊的方法可以解决,下面是解决方案,希望对你们有用。
<?php
header("Content-type:application/vnd.ms-excel");
header("Content-Disposition:attachment; filename=inmyfree.xls");
echo 'ID'.chr(9); //第一行第一个单元格
echo 'NAME'.chr(9); //第一行第二个单元格echo 'URL'.chr(9); //第一行第三个单元格
echo chr(13); //换行
echo chr(13); //换行echo “1”.chr(9); //第三行第一个单元格
echo “inmyfree”.chr(9); //第三行第二个单元格
echo 'http://onmyfree.sinaapp.com'.chr(9); //第三行第三个单元格
?>
这样就可以输出伪excle了
其实问题1可以解决,解决的办法就是php中的chr(number)这个方法,下面是这个的一些ASCII值,看了各位就会明白的了
html中ASCII值chr(9)、chr(10)、chr(13)、chr(32)、chr(34)的区别
ASCII 非打印控制字符
ASCII 表上的数字 0–31 分配给了控制字符,用于控制像打印机等一些外围设备。例如,12 代表换页/新页功能。此命令指示打印机跳到下一页的开头。
ASCII 非打印控制字符表
十进制 字符 十进制 字符
0 空 16 数据链路转意
1 头标开始 17 设备控制 1
2 正文开始 18 设备控制 2
3 正文结束 19 设备控制 3
4 传输结束 20 设备控制 4
5 查询 21 反确认
6 确认 22 同步空闲
7 震铃 23 传输块结束
8 backspace 24 取消
9 水平制表符 25 媒体结束
10 换行/新行 26 替换
11 竖直制表符 27 转意
12 换页/新页 28 文件分隔符
13 回车 29 组分隔符
14 移出 30 记录分隔符
15 移入 31 单元分隔符
ASCII 之外
另一个更新的字符表称为 Unicode (Unicode:Unicode Consortium 开发的一种字符编码标准。该标准采用多(于一)个字节代表每一字符,实现了使用单个字符集代表世界上几乎所有书面语言。)。 因为 Unicode 表大得多,它可以表示 65,536 个字符,而 ASCII 表只能表示 128 个字符,扩展的 ASCII 表也只能表示 256 个字符。这一更大的容量使不同语言的大多数字符都能包含在同一个字符集中。
这样一来就很容易明白CSV换行等问题了,希望对你们有帮助
vim 之 显示行号、语法高亮、自动缩进的设置
vim的配置文件因系统不同而存在差异,本文基于UBUNTU与Fedora系统。
1.配置文件位置
在UBUNTU中vim的配置文件存放在/etc/vim目录中,配置文件名为vimrc
在Fedora中vim的配置文件存放在/etc目录中,配置文件名为vimrc
2. 配置
在终端 输入以下命令来编辑vimrc配置文件:
sudo vim /etc/vim/vimrc
或者 sudo gedit /etc/vim/vimrc
2.1、显示行号
在文件末端添加一新行,输入 set nu
2.2、语法高亮
在文件中找到 "syntax on 这一行,去掉前面的双引号",双引号是注释的意思
2.3、自动缩进
在文件末尾添加一行,输入 set autoindent
在添加一行,输入 set cindent
其中 autoindent 是自动缩进; cindent是特别针对C语言语法自动缩进
注意:如果设置好以上设置后,VIM没有作出相应的动作,那么请你把你的VIM升级到最新版,一般只要在终端输入以下命令即可:sudo apt-get install vim














近期评论