解决 Typecho 在 Godaddy 主机上的重写问题

作者:wiLdGoose 发布时间:November 12, 2009 分类:技术 Technology

前段时间将博客从独立服务器迁移到了 Godaddy 的主机上,顺便从 Magike 换到了 Typecho。期间先将 Magike 迁移到 Godaddy 的主机上测试,然后将本地安装好的 Typecho 迁移到 Godaddy 的主机上测试,最后在 Godaddy 主机上全新安装 Typecho,整个过程始终被一个诡异的问题所困扰,即重写无法生效。

这个问题源于 Godaddy 主机环境使用的 Apache 版本和 Magike、Typecho 本身使用的 Rewrite 机制。经过自己反复折腾和反复骚扰 70 同学后均没有彻底解决问题,最后易先生眼看自己的博客也受到了影响,于是才亲自动手搞定。

这个问题是这样的:

首先,Godaddy 主机的 Apache 版本是 1.3.33。假设 Magike 或 Typecho 没有开启伪静态,在处理类似 https://www.xuchao.org/index.php/archives/1/ 这样的地址时,服务器会在
/index.php/archives/1/ 这个目录里找 index.php 然后来执行,并不会带上 /archives/1/
这个参数,所以点到哪都是首页。若 Magike 或 Typecho 开启了伪静态,浏览器则会接收到 404 错误。

要解决这个问题,大致有两种方案:
1、改变 Magike 和 Typecho 的 URL 传参形式,及程序获得参数的方法;
2、通过升级 Apache 版本等方式,解决服务器对 Magike 和 Typecho 的 URL 的识别。

很显然,在一个租用环境中无法做到第二点。因此只能考虑调整 Magike 和 Typecho 的 URL 解析的函数。

最后问题是这样解决的:

1、Magike

在根目录 index.php 的 include('./core/core.php'); 这行前面加上如下代码:

$baseInfo = @explode('?', $_SERVER['REQUEST_URI'], 2);
if (is_array($baseInfo))
{
        $_SERVER['REQUEST_URI'] = $_SERVER['REQUEST_URI'];
        $_SERVER['PATH_INFO'] = $baseInfo[0];
        unset($_GET);
        if ($baseInfo[1])
        {
                $getInfo = @explode('&', $baseInfo[1]);
                foreach ($getInfo as $v)
                {
                        $getInfo2 = @explode('=', $v);
                        $_GET[$getInfo2[0]] = $getInfo2[1];
                }
        }
}

如果启用了伪静态,则需要修改 .htaccess 文件如下:

RewriteEngine On
RewriteBase /
RewriteRule index(\.)php/(.*) /index.php?/$2 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?/$1 [L]

2、Typecho

在根目录 index.php 的 Typecho_Plugin::factory('index.php')->begin(); 这行前面加上上面一样的代码,若需伪静态,.htaccess 文件也一样。

值得庆幸地是,以上问题仅存在于 Magike 和 Typecho 0.6 以下(含)版本,最新的 Typecho 0.7 正式版已完全解决此问题。

问题解决,立此存照。感谢易先生的帮助与 70 同学的辛勤耕耘。

2013 年 4 月 13 日更新:关闭本篇文章评论,垃圾太多。

新网(Xinnet.com)首页被挂马

作者:wiLdGoose 发布时间:July 25, 2009 分类:技术 Technology

2009 年 7 月 25 日晚 20 点左右,我正要打开新网代理商平台准备注册几个域名,突然 NOD32 跳出来报警。我觉得蹊跷,直接打开新网首页,发现 NOD32 依旧提示木马。如下图所示,点击小图可以欣赏到高清、无码、激情的大图。

分析首页 HTML 代码可以看到是新网公告这个二级域名下被挂了马:

阅读剩余部分...

解决 sendmail 邮件队列文件的磁盘溢出问题

作者:wiLdGoose 发布时间:June 22, 2009 分类:技术 Technology

最近准备重新回归运维,很好。前一阵子易先生打电话说服务器上 session 失效,他在公司又不方便 ssh 上去看。于是我为了自己的博客勉为其难上去看了一下,结果发现 /var 下面居然爆满溢出了。

www# df -h
Filesystem     Size    Used   Avail Capacity  Mounted on
/dev/ad0s1a    989M     59M    851M     7%    /
devfs          1.0K    1.0K      0B   100%    /dev
/dev/ad0s1d    989M    2.2M    908M     0%    /tmp
/dev/ad0s1e     19G    1.6G     16G     9%    /usr
/dev/ad0s1f    989M    910M   -384K   100%    /var
/dev/ad0s1g    124G    1.7G    113G     2%    /www
/dev/ad2s1d    9.7G    1.4G    7.5G    16%    /database
/dev/ad2s1e    139G     42G     85G    33%    /backup

在啧啧称赞之外,准备找出在 /var 下面所有大于 1MB 的文件:

www# find /var -xdev -size +2048 -ls| sort -r +6

这个搜索结果是相当的恐怖,可以用眼花缭乱来形容当时的屏幕滚动。强行中止后发现绝大部分文件都集中在 /var/spool/clientmqueue 这个目录下面。那么这到底是个什么目录呢?

原来,当使用 sendmail 发邮件,或者系统默认要发邮件(譬如 crontab)的时候,首先会把邮件复制到这个目录里,然后等待 MTA 处理。MTA 做的事情就是把这个目录中的邮件转移到 /var/spool/mqueue,然后再发往目的地。

在 /var/spool/clientmqueue 下产生大量文件的情况,通常是因为没有合适的 MTA 来发送邮件,于是都堆积在这里了。假如这里的邮件并不是你需要的,比如由 crontab 产生的信,你可以简单地删除。

还有一种情况,当这个目录下面的文件数量足够多的时候,直接 rm -f * 的话会被提示 Argument list too long。没事,下面两个命令会帮助你搞定问题:

find /var/spool/clientmqueue/ -type f –delete

或者

find /var/spool/clientmqueue/ -type f -exec rm {} \+

不过这两条命令要求 find 的版本较新,如果你的文件版本较低,可尝试:

find /var/spool/clientmqueue/ -type f -exec rm {} \;

到这里,我们已经搞明白 /var 爆满的原因。可以判断的是,易先生服务器的问题就在于系统中有用户启用了 crontab,且 crontab 中执行的程序有输出内容。这些内容会以邮件形式发给 crontab 的用户,而 sendmail 又没有启动,所以就大量产生了这些队列文件。

解决的办法很简单,在 crontab 中命令的最后加上:

>/dev/null 2>&1

这样输出的内容会被直接抛弃,问题就得以解决了。

最后也顺便提一下禁用 sendmail 的事情。本地 MTA 正确工作是 Unix 系统正确工作的一个必要条件。盲目禁止 sendmail 意味着对安全的不关注。如果你不打算启动任何邮件服务,就不应该使用 sendmail_enable="NONE",而应使用 sendmail_enable="NO"。

当然,你也可以考虑用下面的办法来彻底消除其影响,但我认为没什么必要。在 /etc/make.conf 中加入:

NO_SENDMAIL=yes
INSTALL=install

然后 make buildworld installworld,然后用 find 删除 lib、libexec、usr/bin、usr/sbin 等目录中没有被碰过的文件,最后删除 /etc/mail、/etc/rc.d/sendmail 等文件。这个方法来源于网络,没有亲自实验,请谨慎操作。

MySQL 安装后配置细节及 PureFTPd 报错处理

作者:wiLdGoose 发布时间:March 4, 2009 分类:技术 Technology

易先生的要求,我对《快速搭建 FAMP 环境》一文作如下补充。

对 MySQL 依次进行 configure、make、make install 后,还需要执行初始化数据库、配置权限等操作,具体如下:

www# /usr/local/mysql/bin/script/mysql_install_db --user=mysql

www# pw groupadd mysql
www# pw useradd mysql -g mysql -s /sbin/nologin

www# chown -R mysql:mysql /usr/local/mysql/var

www# /usr/local/mysql/bin/mysqld_safe --user=mysql &

安装 PureFTPd 的过程简单,不再赘述。但经常能遇到这样的报错:

Shared object "libmysqlclient.so.15" not found, required by "pure-ftpd"

一般遇到这样的情况,可以这样操作:

阅读剩余部分...

关于之前爆出的 S60 系统“Curse of Silence”漏洞

作者:wiLdGoose 发布时间:January 19, 2009 分类:技术 Technology

我是今年 1 月 2 日在 CB 上看到有关这个事情的新闻,当晚就短信通知了我身边使用 Nokia 智能手机的朋友,并致电 Nokia Care Line(4008800123)咨询相关情况。诺基亚客服称暂时没有接到用户举报,他们会继续关注这个情况,并让我留下了联系方式。

第二天有人在 CB 上给出了临时解决方案和最早发现这个漏洞的德国 Chaos Computer Club 组织(域名可能被 walled)所演示这个漏洞的一个视频

随后的几天,其他媒体开始反应过来,纷纷报道

其实国内最早发布这则新闻的是这个网站。这个页面显示试验这个漏洞的过程,并提供专杀工具的汉化版下载

该漏洞涉及机型如下:

1、S60 3rd Edition,Feature Pack 1(S60 3.1):
Nokia E90 Communicator、Nokia E71、Nokia E66、Nokia E51 、Nokia N95 8GB、Nokia N95、Nokia N82、Nokia N81 8GB、Nokia N81、Nokia N76、Nokia 6290、Nokia 6124 classic、Nokia 6121 classic、Nokia 6120 classic、Nokia 6110 Navigator、Nokia 5700 XpressMusic。

2、S60 3rd Edition,initial release(S60 3.0):
Nokia E70、Nokia E65、Nokia E62、Nokia E61i、Nokia E61、Nokia E60、Nokia E50、Nokia N93i、Nokia N93、Nokia N92、Nokia N91 8GB、Nokia N91 、Nokia N80、Nokia N77、Nokia N73、Nokia N71、Nokia 5500、Nokia 3250。

3、S60 2nd Edition,Feature Pack 3(S60 2.8):
Nokia N90、Nokia N72、Nokia N70。

4、S60 2nd Edition,Feature Pack 2(S60 2.6):
Nokia 6682、Nokia 6681、Nokia 6680、Nokia 6630。

通过国外研究者的报告以及 CNPDA 的验证,发现:
1、S60 2.8 / 3.1 系统的诺基亚手机,在收到十余条该短信时会出现“内存不足,请先删除一些短信”类似提示,并且无法收到新短信。
2、其他上述提及系统的诺基亚手机,收到一条该短信后便无法收到新短信,且无任何提示。

鉴于该漏洞的严重危害性,请所有使用上述机型的机友:
1、S60 3.1 系统的手机,进入短信息收件箱时,出现“内存不足,请删除一些短信”等提示时,很可能已经中招。
2、其他上述提及但非 3.1 系统的手机,长时间收不到短信息。

据分析,这个漏洞是利用了手机电子邮件程序代码段的内存溢出。程序在处理有特殊伪造的信息时,由于控制不严导致内存越界,从而被利用。到底是一段什么代码呢?出于人道主义考虑,我就不再重复张贴漏洞利用方式了,在这里你或许可以找到答案和一些相关的情况描述。

另外,你还可以在这里这里看到一些已经遭受伤害的同学的经历和具有献身精神的小白鼠做的实验过程。

大约在 1 月 7 日的时候,诺基亚终于回应称“正与运营商商谈解决”。

截至今天的更多的信息,可以通过这里查阅。

对德国组织发布的视频感兴趣的朋友,可以在这里下载到。

关于专杀工具,除了上面说的 CNPDA 可以下载到以外,还可以在这里下载。另外我这里也提供一份专杀工具的分流下载吧。

最后,和谐地祝愿与我一样使用 Nokia 智能机的朋友好运。

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. ...
  9. 13