分类: IT职场
2012-05-21 13:35:50
前几天上Linux,课余的时候同学打来电话,说他们公司的网站每天总是在早上8点到下午6点很卡,用的织梦的系统,她怀疑被攻击了,我也觉得像,然后问我怎么办。OMG,我也是初学者啊,她说你可是在兄弟连啊,我当时觉得责任大了许多,不能给兄弟连丢人,然后就去网上查了一查,她还说了一个问题,就是在禁用了fsockopen这个函数的时候一切正常,但是网站的短信功能不能用了,有了这个线索我想就会好找很多了吧,先是查了手册,发现这个函数的介绍居然没有中文翻译,之后上网看了fsockopen这个函数的简介,也发现资料不是很多,都是大同小异,总结如下:
fsockopen:打开网络的Socket连接。
语法:int
fsockopen(string hostname, int port, int [errno], string [errstr], int
[timeout]);
返回值:整数
函数类型:网络系统函数
目前这个函数提供二个 Socket 资料流界面,分别为 Internet 用的 AF_INET 及 Unix 用的
AF_UNIX。当在 Internet 情形下使用时,参数 hostname 及 port 分别代表网址及埠号。在 UNIX 情形可做 IPC,hostname
参数表示到 socket 的路径,port 配置为 0。可省略的 timeout
选项表示多久没有连上就中断。在使用本函数之后会返回文件指针,供文件函数使用,包括 fgets()、fgetss()、fputs()、fclose() 与
feof()。参数 errno 及 errstr 也是可省略的,主要当做错误处理使用。使用本函数,会使用搁置模式 (blocking mode) 处理,可用
set_socket_blocking() 转换成无搁置模式。
使用范例:
本例用来模拟成 HTTP
连接。
$fp = fsockopen("php.wilson.gs",
80,
&$errno, &$errstr, 10);
if(!$fp)
{
echo "$errstr
($errno)
\n";
} else
{
fputs($fp,"GET /
HTTP/1.0\nHost: php.wilson.gs\n\n");
while(!feof($fp))
{
echo fgets($fp,128);
}
fclose($fp);
}
?>
以上内容完全看不懂,哈哈~
最后又上网查找了有没有人也遇到类似的问题,发现最近很多黑客利用fsockopen的漏洞进行PHPDDOS攻击,解决方法网上也只是那么几种,有人说在
fsockopen前加个字母p,php也能认识,黑客也无法攻击,但是我同学试了没有效果。网上一致建议关闭这个函数,可是我同学的网站关闭这个函数就不能进行短信收发了,不知道有没有什么好的方法,特开此贴求教,不知道学了两个月这种问题解决不了是不是很小白?呜呜呜……丢人啊~,我啥时候能成为高手呢?!!
原文地址: