合租服务器禁用 fsockopen 函数,部分程序不正常的解决办法。

本文详细介绍了如何通过禁用并替换fsockopen函数来应对PHPDDOS攻击,提供了已知使用fsockopen的程序文件路径及通用解决方法,并列举了多个具体案例,如DiscuzX2、X2、DEDECMS等,帮助开发者快速定位并解决问题。

近期黑客利用程序漏洞注入后使用 fsockopen 进行PHPDDOS 攻击,导致部分服务器不稳定,现在将危险函数 fsockopen 暂时禁用,部分程序功能可能有问题,以下列出已知问题及通用解决方法:

通用解决方法:
找到程序里的 fsockopen 函数,替换为:pfsockopen,即可解决所有问题,两个函数的区别在于 pfsockopen 保持 keep-alive,使得黑客无法进行 连接数攻击。

已知使用 fsockopen 函数的程序文件路径(在fsockopen 前加 p, 即fsockopen 修改为 pfsockopen  即可 )[其他程序可通过错误提示的文件路径查看更改]:

Discuz X2  安装提示不支持fsockopen:
将 /include/install_var.php  文件里的
$func_items = array(‘mysql_connect’, ‘fsockopen ‘, ‘gethostbyname’, ‘file_get_contents’, ‘xml_parser_create’);
替换为:
$func_items = array(‘mysql_connect’, ‘pfsockopen ‘, ‘gethostbyname’, ‘file_get_contents’, ‘xml_parser_create’);
即可正常安装。
X2全部包含fsockopen的文件(如果用邮件只修改邮件即可,其他文件都是自动判断 pfsockopen):

\api\manyou\Manyou.php
\api\trade\api_alipay.php
\install\include\install_function.php
\install\include\install_lang.php
\install\include\install_var.php
\source\admincp\admincp_addons.php
\source\admincp\admincp_checktools.php
\source\admincp\admincp_cloud.php
\source\admincp\admincp_misc.php
\source\admincp\cloud\cloud_doctor.php
\source\class\class_image.php
\source\class\class_sphinx.php
\source\class\block\xml\block_xml.php
\source\function\function_connect.php
\source\function\function_core.php
\source\function\function_filesock.php
\source\function\function_importdata.php
\source\function\function_mail.php      邮件相关
\source\function\function_plugin.php
\source\include\portalcp\portalcp_upload.php
\source\language\lang_admincp_cloud.php
\source\module\forum\forum_ajax.php
\source\module\misc\misc_manyou.php
\uc_client\client.php
\uc_client\lib\sendmail.inc.php         邮件相关
\uc_client\model\misc.php
\uc_server\install\func.inc.php
\uc_server\install\lang.inc.php
\uc_server\lib\sendmail.inc.php         邮件相关
\uc_server\model\misc.php

 Discuz 品牌空间不能安装,提示UC地址不正确:
修改 /install/func.inc.php 里的 fsockopen函数为 pfsockopen

Discuz 7.2:(非首次安装,可以只改绿色部分。)
问题:使用 uc 不能登录  , fsockopen 函数位于:

include\global.func.php(240): $fp = @fsockopen(($ip ? $ip : $host), $port, $errno, $errstr, $timeout);


include\sendmail.inc.php(54):  if(!$fp = fsockopen($mail['server'], $mail['port'], $errno, $errstr, 30)) {
install\func.inc.php(803):  $fp = @fsockopen(($ip ? $ip : $host), $port, $errno, $errstr, $timeout);
install\var.inc.php(70): $func_items = array('mysql_connect', 'fsockopen', 'gethostbyname', 'file_get_contents', 'xml_parser_create');
uc_client\client.php(211): $fp = @fsockopen(($ip ? $ip : $host), $port, $errno, $errstr, $timeout);


uc_client\lib\sendmail.inc.php(40):  if(!$fp = fsockopen($mail_setting['mailserver'], $mail_setting['mailport'], $errno, $errstr, 30)) {
uc_client\model\misc.php(97): $fp = @fsockopen(($ip ? $ip : $host), $port, $errno, $errstr, $timeout);


uc_server\lib\sendmail.inc.php(40):  if(!$fp = fsockopen($mail_setting['mailserver'], $mail_setting['mailport'], $errno, $errstr, 30)) {
uc_server\model\misc.php(94): $fp = @fsockopen(($ip ? $ip : $host), $port, $errno, $errstr, $timeout);

 

DEDECMS 问答积分功能出现 service.dedecms.com:
修改   /ask/data/scores.inc.php 里的 fsockopen 为 pfsockopen
附带dedecms 全部含 fsockopen 的文件列表:

./include/dedehttpdown.class.php:        $this->m_fp = @fsockopen($this->m_host,                                                      $this->m_port, $errno, $errstr,10);
./include/sphinxclient.class.php:                       $fp = @fsockopen ( $host                                                     , $port, $errno, $errstr );
./include/sphinxclient.class.php:                       $fp = @fsockopen ( $host                                                     , $port, $errno, $errstr, $this->_timeout );
./include/dedecollection.func.php:    $m_fp = fsockopen($ghost, 80, $errno, $err                                                     str,10);
./include/dedecollection.func.php:    $m_fp = fsockopen($ghost, 80, $errno, $err                                                     str,10) or die($ghost.'<br />');
./include/mail.class.php:        //is used in fsockopen()
./include/mail.class.php:        $this->sock = @fsockopen($this->relay_host, $th                                                     is->smtp_port, $errno, $errstr, $this->time_out);
./include/mail.class.php:            $this->sock = @fsockopen($host, $this->smtp                                                     _port, $errno, $errstr, $this->time_out);
./ask/data/scores.inc.php:    $fp = fsockopen($host,80,$errno,$errstr,30);
./dede/module_main.php:        $fp = fsockopen('www.dedecms.com',80,$errno,$errs                                                     tr,30);
./dede/api_ucenter.php: $fp = @fsockopen(($host ? $host : $ip), $port, $errno, $                                                     errstr, $timeout);
./dede/plus_bshare.php:    if (!$fp=@fsockopen($parse['host'],$parse['port'],$er                                                     rnum,$errstr,$timeout)) {
./plus/bshare.php:    if (!$fp=@fsockopen($parse['host'],$parse['port'],$errnum,                                                     $errstr,$timeout)) {

 UC通信不正常,DEDE整合UC连接不上的解决办法:
修改:
uc_client/client.php
uc_client/model/misc.php
替换里面的 fsockopen  为 pfsockopen

SHOPEX:
./install/svinfo.php:                    $fp = @fsockopen(“unix://”.DB_HOST);
./install/svinfo.php:                    $fp = @fsockopen(“tcp://”.$host, $port, $errno, $errstr,2);
./install/svinfo.php:        $rst = is_callable(‘fsockopen’);
./install/svinfo.php:        $items['fsockopen支持'] = array(
./install/svinfo.php:            $fp = fsockopen(isset($_SERVER['SERVER_ADDR'])?$_SERVER['SERVER_ADDR']:$_SERVER['HTTP_HOST'], $_SERVER['SERVER_PORT'], $errno, $errstr, 2);
./plugins/payment/pay.paypal_cn.php:        $fp = fsockopen (‘www.paypal.com’, 80, $errno, $errstr, 30);
./plugins/payment/pay.paypal_cn.php:        $fp = fsockopen (‘ssl://www.paypal.com’, 443, $errno, $errstr, 30);
./plugins/payment/pay.nochek.php:        $fp = fsockopen (‘www.nochex.com’, 80, $errno, $errstr, 10);
./plugins/payment/pay.paypal.server.php:        $fp = fsockopen (‘www.paypal.com’, 80, $errno, $errstr, 30);
./plugins/payment/pay.paypal.php:        $fp = fsockopen (‘www.paypal.com’, 80, $errno, $errstr, 30);
./plugins/passport/passport.ucenter.php:            $fp=@fsockopen(($ip ? $ip : $host),$port,$errorno,$errorstr,$timeout);
./core/lib/nusoap.php:        $this->debug(‘calling fsockopen with host ‘ . $host . ‘ connection_timeout ‘ . $connection_timeout);
./core/lib/nusoap.php:            $this->fp = @fsockopen( $host, $this->port, $this->errno, $this->error_str, $connection_timeout);
./core/lib/nusoap.php:            $this->fp = @fsockopen( $host, $this->port, $this->errno, $this->error_str);
./core/lib/uc_client/client.php:    $fp = @fsockopen(($ip ? $ip : $host), $port, $errno, $errstr, $timeout);
./core/func_ext.php:    $fp = pfsockopen($url['host'], isset($url['port'])?$url['port']:80, $errno, $errstr, 2);
./core/func_ext.php:    $fp = pfsockopen( $host, $port, $errno, $errstr, $timeout );
./core/api/include/api_utility.php:        $process = fsockopen($this->host, $this->port, $errno, $errstr, 10);
./core/api/include/api_utility.php:        $process = fsockopen($host, 80, $errno, $errstr, 10);
./core/api/tools/1.0/api_b2b_1_0_tools.php:    $fp = fsockopen( $host, $port, $errno, $errstr, $timeout );

 

http://help.vit.cn/item/113.html

 

 

潮汐研究作为海洋科学的关键分支,融合了物理海洋学、地理信息系统及水利工程等多领域知识。TMD2.05.zip是一套基于MATLAB环境开发的潮汐专用分析工具集,为科研人员与工程实践者提供系统化的潮汐建模与计算支持。该工具箱通过模块化设计实现了两大核心功能: 在交互界面设计方面,工具箱构建了图形化操作环境,有效降低了非专业用户的操作门槛。通过预设参数输入模块(涵盖地理坐标、时间序列、测站数据等),用户可自主配置模型运行条件。界面集成数据加载、参数调整、可视化呈现及流程控制等标准化组件,将复杂的数值运算过程转化为可交互的操作流程。 在潮汐预测模块中,工具箱整合了谐波分解法与潮流要素解析法等数学模型。这些算法能够解构潮汐观测数据,识别关键影响要素(包括K1、O1、M2等核心分潮),并生成同时间尺度的潮汐预报。基于这些模型,研究者可精准推算特定海域的潮位变化周期与振幅特征,为海洋工程建设、港湾规划设计及海洋生态研究提供定量依据。 该工具集在实践中的应用方向包括: - **潮汐动力解析**:通过多站点观测数据比对,揭示区域主导潮汐成分的时空分布规律 - **数值模型构建**:基于历史观测序列建立潮汐动力学模型,实现潮汐现象的数字化重构与预测 - **工程影响量化**:在海岸开发项目中评估人工构筑物对自然潮汐节律的扰动效应 - **极端事件模拟**:建立风暴潮与天文潮耦合模型,提升海洋灾害预警的时空精度 工具箱以"TMD"为主程序包,内含完整的函数库与示例脚本。用户部署后可通过MATLAB平台调用相关模块,参照技术文档完成全流程操作。这套工具集将专业计算能力与人性化操作界面有机结合,形成了从数据输入到成果输出的完整研究链条,显著提升了潮汐研究的工程适用性与科研效率。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值