丫丫坐在爸爸身上啃手指
5月 4th, 2008好可怜的丫丫,整天吃不饱,只有啃自己的手指!
好可怜的丫丫,整天吃不饱,只有啃自己的手指!
前几天就看到服务器日志记录一大堆网关的网卡Mac地址在 00:1a:6c:53:11:47 和 00:20:ed:13:c1:32 换来换去,觉得挺奇怪,也没怎么在意。
之后服务器上一个站点被人插入cool.47555.com的病毒代码,查到服务器上文件被修改,因为那个站点的程序也论坛都是从网上下载,以为是有漏洞被利用修改了服务器上的文件,结果把程序都删除了事。
可是第二天服务器上的另一个站点也被插入代码,继而服务器上的所有站点的所有网页都被插入了代码,查看服务器上的文件又没有被插入的代码,服务器也没有被入侵的痕迹,想到网关的网卡Mac地址的变化,应该是在机房有台服务器使用Arp欺骗使得所有数据包通过它,然后插入代码转发给网关,使用命令: arp -a 查看,网关的Mac是 00:20:ed:13:c1:32 ,这个Mac一定有问题,使用命令:
arp -s 网关ip 00:1a:6c:53:11:47
设置网关的Mac为 00:1a:6c:53:11:47 ,再次访问,果然没有了插入代码。
第二天把情况反馈给机房处理,应该是有台服务器有漏洞被黑被利用了,通过网络查找 cool.47555.com ,发现有很多人都被这个站点的恶意代码所困扰,这种情况确实很难发现和处理,并且Ftp和网站用户密码都可能被截获,从而造成更大的破坏。
通过squid反向代理访问时,apache日志中,不管使用 %h 还是 %a 格式字符串,记录的都是代理服务器的ip,而不是客户端的真实ip。
在squid发到apache的http请求头中有一项: X-Forwarded-For ,是真实客户端的ip,可以在apache中定义日志格式,把 %{X-Forwarded-For}i 代替 %h 就可以记录客户端的真实ip。
在 httpd.conf 中定义:
LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Host}i\" \"%{Referer}i\" \"%{User-Agent}i\"" combinedIpHost
CustomLog logs/access_log combinedIpHost
其中 %{X-Forwarded-For}i 为客户端真实ip, %{Host}i 是访问的主机名,如果网站绑定多个域名时,可以区分是通过那个域名访问的, %{Referer}i 是引用页,其他格式可以通过Apache文档找到。
广告图片全屏漂浮,鼠标放上去停在浮动,鼠标移出后继续浮动,JavaScript代码: Read the rest of this entry »
通过php把数据库中的内容生成文件,让客户端自动下载,代码:
<?php
$cont = 从数据库中读取的内容;$cont_len = strlen($cont);
Header(”Content-Disposition: attachment; filename=\”文件名\”");
Header(”Content-Type: application/x-unknown”); // 具体文件类型可以使用相应的mine类型
Header(”Content-Transfer-Encoding: none”);
Header(”Pragma: no-cache”);
Header(”Expires: 0″);
Header(”Content-Length: $cont_len”);echo $cont;
?>
今天MySql数据库突然有个表在查询的时候出现 Got error 127 from storage engine 错误,可能是因为MySql运行过程中出现中断、异常或者被kill掉,使得MySql数据库表文件出现错误。
使用MySql的perror查看127错误:
# perror 127
MySQL error code 127: Record-file is crashed
使用root登陆MySql,选择数据库,使用 repair 修复表:
repair table table_name
几秒中后显示:
+———————+——–+———-+——————————————————–+
| Table | Op | Msg_type | Msg_text |
+———————+——–+———-+——————————————————–+
| dbname.table_name | repair | info | Found wrong packed record at 25073712 |
| dbname.table_name | repair | info | Found block with too small length at 25073864; Skipped |
| dbname.table_name | repair | info | Wrong bytesec: 0- 0- 0 at 48927808; Skipped |
| dbname.table_name | repair | warning | Number of rows changed from 252919 to 252918 |
| dbname.table_name | repair | status | OK |
+———————+——–+———-+——————————————————–+
5 rows in set (12.29 sec)
Ok,数据库表修复完成,使用恢复正常。
// PHP为网站图片做水印标记程序
// 在图片上打上网站网址水印标记
// 服务器必须安装了GD库和FreeType 库
// 使用TureType字体,可以任意调整字体和文字大小
// 支持 gif 、 jpeg 、 png 文件
// $src : 原图片文件
// $dst : 做水印后的图片保存文件路径
function watermark($src, $dst)
{
$image_info = getimagesize($src);
switch($image_info[2])
{
case 1:
$res = imagecreatefromgif($src);
break;
case 2:
$res = imagecreatefromjpeg($src);
break;
case 3:
$res = imagecreatefrompng($src);
break;
default:
return false;
}
if(!$res)
{
return false;
}
$r = 0xFF;
$g = 0xFF;
$b = 0xFF;
$tc = ImageColorAllocate($res, $r, $g, $g); //// 白色
$font_file = 'times.ttf'; //// 字体文件、可以使用 c:\windows\fonts 目录下的文件
$mark_text = 'http://www.taojie.com/'; //// 水印文字
$font_size = 32; //// 文字大小
$arr_ttf = ImageTtfBbox($font_size, 0, $font_file, $mark_text);
$ttf_width = Abs($arr_ttf[4] - $arr_ttf[0]);
$ttf_height = Abs($arr_ttf[5] - $arr_ttf[1]);
$x = ($image_info[0] - $ttf_width) / 2; //// 水印文字位置,水平居中
$y = $image_info[1] - $ttf_height; //// 水印文字垂直位置
if($x < 0)
{
$x = 0;
}
if($y < 0)
{
$y = 0;
}
ImageTtfText($res, $font_size, 0, $x, $y, $tc, $font_file, $mark_text);
switch($image_info[2])
{
case 1:
$ret = ImageGif($res, $dst);
break;
case 2:
$ret = ImageJpeg($res, $dst);
break;
case 3:
$ret = ImagePng($res, $dst);
break;
default:
return false;
}
return $ret;
}
今天下午看到qq诺顿误杀导致系统崩溃的提示,并没有在意,我每天早上打开电脑就更新诺顿病毒库,今天也不例外,但并没有出现问题,也没有提示发现病毒,以为不会有事。 晚上回到家,打开笔记本,windows xp启动界面后并没有出现熟悉的登陆界面,而是出现了蓝屏,提示:
STOP:0xc000021a Unknow Hard Error Unknow Hard Error
一看,傻眼了,这本本可是还没用到半年啊,怎么就出现硬件错误了呢,这么快就坏了?!心有不甘又心存侥幸的关机、开机试了几次,错误依旧,没办法了,看来明天要送修了,决定打开台式机上网查查这个错误是什么原因,可是打开台式也没有进入到windows xp登陆界面而是在这之前就重启,居然两台电脑都坏了!真是太衰了吧? 突然想到台式机今天也升级了诺顿病毒库,不会这么凑巧吧?再打开本本GHost到以前的系统,居然可以启动,确定两台电脑都是因诺顿误杀导致系统崩溃! 既然不是硬件坏了,就好办了,找来windows xp安装盘,用光盘启动,选择R进入“恢复控制台”,再选择1输入管理员密码进入命令行,查看了一下c:\windows\system32\目录,netapi32.dll 不见了,lsasrv.dll 却还在,而c:\windows\system32\dllcache\目录下的netapi32.dll,lsasrv.dll都还在,使用命令(g盘是光盘): expand g:\i386\netapi32.dl_ c:\windows\system32\ 恢复netapi32.dll,看lsasrv.dll还在就心存侥幸没有恢复lsasrv.dll,执行Exit退出恢复控制台重新启动电脑,使用硬盘启动,启动windows xp后却提示lsass.exe错误:
应用程序正常初始化(0xc0000022)失败,请单击“确定”,终止应用程序
单击确定后系统就不会再动了,无奈重启再进入恢复控制台,一看netapi32.dll,lsasrv.dll都不见了,只得使用命令: expand g:\i386\netapi32.dl_ c:\windows\system32\ expand g:\i386\lsasrv.dl_ c:\windows\system32\ 恢复netapi32.dll和lsasrv.dll,Exit退出恢复控制台,重启电脑,终于进入到Windows xp中,打开诺顿,发现确实有把netapi32.dll杀掉的记录,但并没有在隔离区中,不能恢复,只能就先这样使用这两个文件的旧版本了,然后把诺顿卸载了,因为发现只关闭诺顿的实时监控,它还是会在系统启动的时候把这个系统文件杀掉的。