fsockopen pfsockopen函数被禁用,SMTP发送邮件不正常的解决方法


Posted in PHP onSeptember 20, 2015

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

通用解决方法:
找到程序里的 fsockopen 函数,替换为:pfsockopen,即可解决所有问题,两个函数的区别在于 pfsockopen 保持 keep-alive,使得黑客无法进行 连接数攻击。
已知使用 fsockopen 函数的程序文件路径(在fsockopen 前加 p, 即fsockopen 修改为 pfsockopen 即可 )

二:服务器同时禁用了fsockopen pfsockopen,那么用其他函数代替,如stream_socket_client()。注意:stream_socket_client()和fsockopen()的参数不同。
具体操作:
搜索程序中的字符串 fsockopen( 替换为 stream_socket_client( ,然后,将原fsockopen函数中的端口参数“80”删掉,并加到$host。
示例如下

修改前:

$fp = fsockopen($host, 80, $errno, $errstr, 30);

修改后:

$fp = stream_socket_client($host."80", $errno, $errstr, 30);
国内主流PHP网站涉及fsockopen函数的网站系统中的文件列表:
国内主流PHP网站涉及fsockopen函数的网站系统中的文件列表:

DEDECMS:
 

source\function\function_core.php  这个文件有2处fsockopen,另外的是pfsockopen,请注意区分

uc_client\client.php  这个文件有2处fsockopen,另外的是pfsockopen,请注意区分

uc_client\lib\sendmail.inc.php

uc_client\model\misc.php 这个文件有2处fsockopen,另外的是pfsockopen,请注意区分

uc_server\install\func.inc.php 这个文件有2处fsockopen,另外的是pfsockopen,请注意区分

uc_server\lib\sendmail.inc.php

uc_server\model\misc.php 这个文件有2处fsockopen,另外的是pfsockopen,请注意区分

Discuz! 2.5:

source\function\function_core.php  这个文件有2处fsockopen,另外的是pfsockopen,请注意区分

uc_client\client.php  这个文件有2处fsockopen,另外的是pfsockopen,请注意区分

uc_client\lib\sendmail.inc.php

uc_client\model\misc.php 这个文件有2处fsockopen,另外的是pfsockopen,请注意区分

uc_server\install\func.inc.php 这个文件有2处fsockopen,另外的是pfsockopen,请注意区分

uc_server\lib\sendmail.inc.php

uc_server\model\misc.php 这个文件有2处fsockopen,另外的是pfsockopen,请注意区分

ecms(帝国):

e\class\class.smtp.php
 
ECSHOP:

admin\index.php

demo\includes\lib_updater.php

includes\cls_smtp.php

includes\cls_transport.php

includes\lib_base.php

includes\modules\payment\paypal.php

 
shopex:
 
core\api\include\api_utility.php

core\api\tools\1.0\api_b2b_1_0_tools.php

core\func_ext.php

core\lib\nusoap.php

core\lib\uc_client\client.php

instal\svinfo.php

plugins\passport\passport.ucenter.php

plugins\payment\pay.nochek.php

plugins\pay.paypal.php

plugins\pay.paypal.server.php

plugins\pay.paypal_cn.php
PHP 相关文章推荐
php关于array_multisort多维数组排序的使用说明
Jan 04 PHP
ThinkPHP缓存方法S()概述
Jun 13 PHP
php中$_POST与php://input的区别实例分析
Jan 07 PHP
PHP封装的Twitter访问类实例
Jul 18 PHP
PHP获取指定月份第一天和最后一天的方法
Jul 18 PHP
PHP用户验证和标签推荐的简单使用
Oct 31 PHP
PHP之十六个魔术方法详细介绍
Nov 01 PHP
PHP编程求最大公约数与最小公倍数的方法示例
May 29 PHP
php表单习惯用的正则表达式
Oct 11 PHP
PHP封装的完整分页类示例
Aug 21 PHP
php实现数组重复数字统计实例
Sep 30 PHP
PHP中echo与print区别点整理
Mar 09 PHP
分享ThinkPHP3.2中关联查询解决思路
Sep 20 #PHP
使用PHPCMS搭建wap手机网站
Sep 20 #PHP
求帮忙修改个php curl模拟post请求内容后并下载文件的解决思路
Sep 20 #PHP
PHP执行SQL文件并将SQL文件导入到数据库
Sep 17 #PHP
如何使用PHP对网站验证码进行破解
Sep 17 #PHP
浅谈php+phpStorm+xdebug配置方法
Sep 17 #PHP
PHP 9 大缓存技术总结
Sep 17 #PHP
You might like
PHP5新特性: 更加面向对象化的PHP
2006/11/18 PHP
一个简单的PHP&MYSQL留言板源码
2020/07/19 PHP
PHP生成月历代码
2007/06/14 PHP
php利用iframe实现无刷新文件上传功能的代码
2011/09/29 PHP
php如何解决无法上传大于8M的文件问题
2014/03/10 PHP
Thinkphp的volist标签嵌套循环使用教程
2014/07/08 PHP
jquery 页面滚动到指定DIV实现代码
2013/09/25 Javascript
javascript使用正则表达式实现去掉空格之后的字符
2015/02/15 Javascript
js实现动画特效的文字链接鼠标悬停提示的方法
2015/03/02 Javascript
jQuery插件开发精品教程(让你的jQuery更上一个台阶)
2015/11/07 Javascript
jquery实现图片跟随鼠标的实例
2017/10/17 jQuery
解决vue页面DOM操作不生效的问题
2018/03/17 Javascript
微信小程序云开发修改云数据库中的数据方法
2019/05/18 Javascript
vue实现固定位置显示功能
2019/05/30 Javascript
Vue项目中使用jsonp抓取跨域数据的方法
2019/11/10 Javascript
React倒计时功能实现代码——解耦通用
2020/09/18 Javascript
如何在vue中使用video.js播放m3u8格式的视频
2021/02/01 Vue.js
下载给定网页上图片的方法
2014/02/18 Python
Python yield与实现方法代码分析
2018/02/06 Python
python读取Excel表格文件的方法
2019/09/02 Python
Python爬虫爬取煎蛋网图片代码实例
2019/12/16 Python
PyTorch实现更新部分网络,其他不更新
2019/12/31 Python
python获取整个网页源码的方法
2020/08/03 Python
Python安装Bs4的多种方法
2020/11/28 Python
html5中的input新属性range使用记录
2014/09/05 HTML / CSS
工厂厂长的职责
2013/12/12 职场文书
村委会换届选举方案
2014/05/03 职场文书
演讲稿的写法
2014/05/19 职场文书
承诺书模板
2014/08/30 职场文书
教师个人查摆剖析材料
2014/10/14 职场文书
新郎新娘答谢词
2015/01/04 职场文书
创业计划书之家教托管
2019/09/25 职场文书
python基础之模块的导入
2021/10/24 Python
python运算符之与用户交互
2022/04/13 Python
一文搞懂PHP中的抽象类和接口
2022/05/25 PHP
Python  序列化反序列化和异常处理的问题小结
2022/12/24 Python