nginx php 错误配置导致安全漏洞

后知后觉发现了此文 Setting up PHP-FastCGI and nginx? Don’t trust the tutorials: check your configuration! 基本上是说,网上的大部分 nginx + php 配置教程中有一个错误,导致 php 会试图执行非 php 文件,甚至是用户上传的图片。 事实上看到此漏洞的描述我已经立刻想到问题之所在了,的确,之前我写的那篇 配置笔记 也是有此问题的。基本原理就是 nginx 配置中有这么一段 location ~ .*.php5?$ { include fastcgi_params; root /var/host/phpMyAdmin; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_pass unix:/var/run/php_fcgi.sock; fastcgi_index index.php; } 凡是以 .php 或者 .php5 结尾的 uri 都会被交给 php 处理,于是类似于 user.jpg/aaa.php 也会交给 php 处理,于是 user.jpg 就被当成 php 代码给执行了。 解决此问题的方法有好几种,codex.wordpress.com 上面提供的一种方式是如下修改 nginx 中有关 php 的配置。不过如果 nginx 和 php 不运行在同一台机器上时,此方法无效。 ...

April 17, 2011 · raptium

Envy 14 上手记

上个礼拜订的 HP 学生机 Envy 14 今天终于拿到了,具体型号是 14-1016tx。拿到新机器欣喜之余我觉得还是可以写个上手小记的。 首先包装很漂亮,好像今年惠普的大部分机型都是黑色的大纸盒包装,要比往常牛皮纸纸箱看起来感觉好许多。至于 Envy 就又有点不同,因为它的内置音响是 Beats 的,所以大黑盒子开出来,里面又是个黑盒子,上面还套着个印着 Beats 纸环。黑底上飘着一点红,这个我觉得相当之骚…… 由于今天我是第一个买了 Envy 去提货的,那些工作人员好像都没开过 Envy 的盒,所以开盒验货的时候,不由得赞叹起来,看来 Envy 也不是瞎起的名字…… 以至于我的感觉似乎有些太好了。 第一次开机要选语言,选完之后会自动装一堆东西才能进系统。原本在网上看评测的时候,看到说 HP 在这台机上预装的软件不是太多的。可是我点开开始菜单的时候我发现他们错了,还是一堆我一辈子都用不到的东西。当然也有我原本就想下载安装的,比如 Fences,竟然装了个 HP OEM 版进来,这个值得表扬一下。 把不要的软件卸载完,第一次重启的时候,发现进入了一个叫做 QuickWeb 的东西。可以上网,聊天,听音乐。研究了一下,基本鉴定是一个 HP 定制的 Linux。浏览器是 Firefox 改的,聊天工具是 Pidgin 改的,音乐播放器不明。这个东西还算有点用,至少比进 Windows 要快一点,如果只是想开机看一下邮件或者偷个菜的话,也的确更加方便,而且应当更加省电。 进 Windows 装系统更新,一段时间下来觉得发热还是挺厉害的,我都没有开任何需求高的游戏,仅仅是 CPU 发热就能感觉出来。右手边掌托上是有些热的,右上可能是显卡位置,也比较热。这么估计不会比我旧的 Macbook Pro 好到哪里去,唯一的进步就是,这次是右手边热,左手边不热,和 Macbook Pro 正好相反。这样其实已经好了很多,因为玩很多游戏都时候都是左手放 asdf 位,右手那鼠标,如果左手边热的话很容易出手汗…… [未完待续]

September 6, 2010 · raptium

人人克隆关系网?

今天 Ice 在 人人网 偶然发现了一个夏润喆的小号,此号有不少好友,都是小号。这些小号又有不少其他好友,也大都是小号。这些号的共同点为:真名,真头像(如果有的话),互相加了好友,不活跃,无日志,少状态。注册日期无法判定,但是 ID 都是7字开头,应该在最近一年内注册。于是我们觉得这可能是一个阴谋,有人在暗地里经营着一张克隆关系网…… 我们无从得知克隆关系网的目的,然而其带来的安全隐患是巨大的,倘若此关系网规模再增大,每个人的信息再补充完整一些,就能达到以假乱真的效果,从而引发人人网信任危机,甚至其他更严重的问题。 在 这里 整理了少量克隆帐号,欢迎补充,如果有加错的也请提醒修正。

April 29, 2010 · raptium

雅加達歷險記 - 上篇

今日抵港入關語錄 ──你是去美國嗎? ──不是,我去印尼。 ──印尼哪裡? ──雅加達。 ──簽證呢? ──來不及辦了,落地簽吧。 ──什麼時候的飛機? ──明天下午3點50。 …… 五日後應當還有下篇,敬請期待。

April 7, 2010 · raptium

好久沒看到這麼有趣的東西了

很久沒有更新 Blog 的原因之一是,一直都覺得挺無聊的(當然主要原因還是我懶)。 今日在 Google Reader 上見到 Jackie Chen 同學分享的 “西廂計劃”原理小解 一文, 客戶端張生和服務器端崔鶯鶯的故事本就非常有趣,可是接著讀下去看到西廂計劃的實際內容時,我才真的意識到:好久沒看到這麼有趣的東西了啊~ 西廂計劃 和常見的穿牆方式不同,既不走彎路、遠路,也不須加密數據,而是利用 GFW 自身缺陷和 TCP/IP 協議的某些特性來實現了直連免過濾。西廂計劃告訴我們,學好 IEG3310 是一件很有意義的事情,看似無聊的三次握手也可能握得很精彩。 忘記曾經一次又一次看到 Connection Reset 頁面時的沮喪心情,向西廂計劃的貢獻者們致敬!

March 15, 2010 · raptium

协同翻译工具之阴谋论

听说 Google 又有新服务推出,是一个翻译工具,叫做 Google Translator Toolkit。推出的似乎比较低调,看域名也不像是一个独立的新产品,可以算作 Google Translate 的一部分。 我小试了一下,没有太多令人意外的地方:典型的 Google UI 设计——简洁,类似早些时候 Google Docs 的界面;拥有 CAT 软件基本的功能,多语言,自动翻译,词汇表导入……支持的格式也都是常见的那几种。基本的操作,似乎也没有太多可以研究——上传,选择语言,自动翻译,逐词句手工翻译,完成。 然而,这肯定不是全部,菜单上还有一个按钮—— Share,这是一个协同翻译工具,你可以把需要翻译的文章和其他人共享,一同翻译,效率自然大大提高。除了共同翻译外,词汇表也可以共享,这又提高了翻译效率。然后,还有,那个叫做 Translation Memory 的东西,Google 给出的解释是 A translation memory (TM) is a database of human translations 这样,人工翻译的结果是可以存入数据库的。再注意到灰色字的提示 If no TM is specified, translated segments are stored in out shared, global TM. 原来,我们协同翻译的工作远比我们所想得更有意义,它们被存入了公共的数据库,凭借着 Google 在数据处理上的超级牛力,这些数据必定大大提高之后的翻译效率。于是,终于有人跳出来说,这,是一个阴谋!看到 此文 有人评论: 翻译的成果竟然给 Google 使用下三滥手段偷了去,然后用来制造翻译产品并从中直接或间接牟利,作为一个专业的翻译,我,感到相当震惊! 这么想来,这个工具虽然能够提高翻译效率同质量,Google 却做得有点不厚道,默认设置不应该是共享 Translation Memory 的,毕竟翻译也是人家辛苦劳动的成果,不经意间被利用,难免让人感到不快。 Anyway,作为一个不会翻译的非专业人士,我,愿意围观更多翻译作品的诞生……

June 10, 2009 · raptium

它真的不是一个搜索引擎

Wolfram 推出了一个叫做 WolframAlpha 的东西,之前网上有人把它称之为 Google 的挑战者,一时间得到了众多关注。然而 它真的不是一个搜索引擎,它根本不是和 Google 竞争,它做和 Google 完全不同的事情。如果说它和 Google 有什么相似,那么最明显的只是——一个文本框——你输入词句,它给你信息。我没有说那个是搜索框,对,Google 的是搜索框,然而 WolframAlpha 的不是,它的输入框右边是个“=”,这是一个 计算知识引擎(Computational Knowledge Engine),你在这里得到的信息,是算出来的。 前天一看到 Wolfram 这个词,就觉得似曾相识,而那个 Logo 更是相当面善,略加搜索才恍然大悟, Mathematica!如果你不知道 Wolfram,你也应该听说 Mathematica,如果你不知道 Mathematica,那么,你总该听说过 MATLAB…… Mathematica 是一个广泛使用的计算机代数系统,拥有强大的数值计算和符号运算能力。 我用过它,在我还是大一的时候,我懒得动手去算微积分作业,Mathematica 告诉了我答案,于是考试的时候我什么都不会, 那门课 我得了 B-……尽管如此,我还是很喜欢这个软件,虽然其实我不知道怎么用它。 一个数学计算软件摆在眼前,我就觉得有些头脑发热了——虽然我是学工科的,我并没有上很多数学课,而基础的数学我也可能学的不够好。对我来说,那都是些高深的东西,科学?计算?其实那些离我们并非太远,WolframAlpha 这次把一切搬到了网上,透过浏览器,在那个文本框中输入关键字,它用海量的数据和强劲的计算来告诉你想知道的信息。 我花了大概半个小时来玩 WolframAlpha,还没有算正式上线,它显得非常不稳定。不过几次尝试的结果还是让人感到欣喜。输入 integrate x^2 dx from 0 to 1,它会告诉你 x^2dx 从 0 到 1 的定积分是 1/3,还附带一个图,标注了阴影部分来解释;输入 force m=1kg a=1m/s^2,它会告诉你,让质量为1千克的物体产生1米每平方秒的加速度,需要的力是1牛顿;输入 The Chinese University of Kong Kong,它会告诉你香港中文大学成立于1963年,大约有1万8千学生,本地生学费6千美元一年,国际生学费1万2千美元一年;输入 mortgage 5% 3 years $100k,它会告诉你,5分利息的按揭贷款10万美元,3年还清的话,每月要还2997美元,最后交了7895美元的利息……输入 D# 会得到什么?哦,五线谱和键盘图,还有 369.994Hz…… ...

May 16, 2009 · raptium

nginx 的 wordpress rewrite 规则

我目前在用的 nginx 设置就是这个,已经包含了 WP Super Cache 的 rewrite rule,大部分内容是我搜来的,很不幸暂时找不到来自哪里了…… 其实网上类似的内容太多了~ server { listen 80; server_name www.example.net; location / { index index.php; root /var/host/wordpress; gzip_static on; if (-f $request_filename) { break; } set $supercache_file ''; set $supercache_uri $request_uri; if ($request_method = POST) { set $supercache_uri ''; } if ($query_string) { set $supercache_uri ''; } if ($http_cookie ~* "comment_author_|wordpress|wp-postpass_" ) { set $supercache_uri ''; } if ($supercache_uri ~ ^(.+)$) { set $supercache_file /wp-content/cache/supercache/$http_host/$1index.html; } if (-f $document_root$supercache_file) { rewrite ^(.*)$ $supercache_file break; } if (!-e $request_filename) { rewrite . /index.php last; } } location ~ .*.php5?$ { include fastcgi_params; root /var/host/wordpress; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_pass unix:/var/run/php_fcgi.sock; fastcgi_index index.php; } }

May 2, 2009 · raptium

[配置笔记]CentOS + nginx + PHP

之前的 这篇文章 似乎是挖了个坑一直没填,然而每每出现这种情况的时候,都会发现还偏偏总有人通过 Google 搜索过来……一定让不少人失望了,真是过意不去~于是这次重新写一篇,但愿能把坑填上…… 和上次略有不同,这次 Linux 发行版是用的 CentOS,因为最近一段时间来其实我接触最多的还是 RHEL,所以就不写 Ubuntu 了。MySQL 也不在本文叙述范围之内,我实际应用的时候是直接 yum install mysql-server 装的,没有什么好说的。 nginx 用了 0.7.x 开发版。php 当然是通过 fastcgi 运行,不过没有用从 lighttpd 里分离出来的 spawn-fcgi,而是用了 php-fpm 这个补丁。

May 1, 2009 · raptium

校内出错的那几分钟

> 貌似最近通过搜索 校内 502 Bad Gateway 来到此页面的同学越来越多了。简单明了的告诉你,这是校内的服务器不行了,不是用户的问题,也许等等就好了,如果等等也不好……那……校内,你倒底行不行啊? --- Updated on 2 Jun, 2009 晚上开着校内的时候,突然弹了个框出来,说是 502 Bad Gateway,然后按刷新就看不到校内了,看到了……我熟悉的 nginx 502 错误页面~ 当时就想,校内又出错了啊,还是 nginx,可以研究一下哈。 立刻问了一下小野猪,他说校内是可以上的,就是有点慢。而我却是立刻返回 502 页面,服务器 nginx 0.6.32,校内正常的服务器应该是 resin 才对。两个人访问结果不同的情况,除了我 RP 差之外,还是有其他原因的,我猜就是我这两天碰巧在搞得 DNS Round Robin $ nslookup xiaonei.com Server: 208.67.222.222 Address: 208.67.222.222#53 Non-authoritative answer: Name: xiaonei.com Address: 211.157.20.6 Name: xiaonei.com Address: 211.157.20.3 Name: xiaonei.com Address: 211.157.20.2 和 google.com 一样,xiaonei.com 解析的时候也会有三个 IP,DNS Server 会在每次回复的时候改变顺序,不过究竟用哪个 IP 还是客户端说了算,有时候 DNS Cache 久了,你可能长时间使用一个 IP 访问。不过这个在减低服务器负载上还是有效果的,因为人多了之后,还是大致上 IP 均分的。 ...

March 27, 2009 · raptium