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

一:近期黑客利用程序漏洞注入后使用 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

(0)

相关推荐

  • PHP的fsockopen、pfsockopen函数被主机商禁用的解决办法

    也许fsockopen.pfsockopen函数的确存在着安全的隐患,但是我们却已经无从考证,这都是IDC商说的,不管是什么原因吧,反正他们是把这两个函数禁用了,那么如何解决呢,下面是小编整理的方法,希望对用到的同学有一定的参考. 解决方法如下: 一.使用stream_socket_client()替代 服务器同时禁用了fsockopen.pfsockopen,那么用其他函数代替,如stream_socket_client().注意:stream_socket_client()和fsockope

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

    一:近期黑客利用程序漏洞注入后使用 fsockopen 进行PHPDDOS 攻击,导致部分服务器不稳定,现在将危险函数 fsockopen 暂时禁用,部分程序功能可能有问题,以下列出已知问题及通用解决方法: 通用解决方法: 找到程序里的 fsockopen 函数,替换为:pfsockopen,即可解决所有问题,两个函数的区别在于 pfsockopen 保持 keep-alive,使得黑客无法进行 连接数攻击. 已知使用 fsockopen 函数的程序文件路径(在fsockopen 前加 p, 即

  • Python查找函数f(x)=0根的解决方法

    本文实例讲述了Python查找函数f(x)=0根的解决方法.分享给大家供大家参考.具体实现方法如下: ''' root = ridder(f,a,b,tol=1.0e-9). Finds a root of f(x) = 0 with Ridder's method. The root must be bracketed in (a,b). ''' import error from math import sqrt def ridder(f,a,b,tol=1.0e-9): fa = f(a)

  • 基于jquery trigger函数无法触发a标签的两种解决方法

    起因:点击icon图标后要触发a标签的链接转跳动作,但是用 JQ 的 $('#a').trigger('click') 居然不起作用,遂百度之,总结两种方法如下: (原因:JQ 的 trigger() 方法确实无法触发 a 标签的转跳动作.) 1:JQ 方法: 对目标 a 标签内部新增一个 span 标签 ,然后给 span 标签绑定 trigger('click') 事件. $('#a').html('<span></span>').children().trigger('cli

  • .NET发送邮件遇到问题及解决方法

    .NET后台代码利用QQ邮箱服务器发送邮件遇到的问题:"mail from address must be same as authorization user" 首先,看下我的代码实现 后台代码: public class EmailHelper { /// <summary> /// 发送邮件 /// </summary> /// <param name="subject">主题</param> /// <p

  • PHP中iconv函数转码时截断字符问题的解决方法

    iconv是转换编码的,但是在中文转码时候出现显示不全问题. 复制代码 代码如下: iconv("UTF-8","GB2312//IGNORE",$data);    加上//IGNORE,忽略错误 或者用mb_convert_encoding() 复制代码 代码如下: <?php  /* 转换内部编码为 SJIS */  $str = mb_convert_encoding($str, "SJIS");    /* 将 EUC-JP 转换

  • 浅析虚拟主机服务器php fsockopen函数被禁用的解决办法

    一.如何禁用fsockopen()下面是两种常用的禁用fsockopen的方法.1.修改php.ini,将 disable_functions = 后加入 fsockopen 2.修改php.ini,将 allow_url_fopen = On 改为 allow_url_fopen = Off 二.如何解决fsockopen函数被禁用1.如果服务器没有同时禁用pfsockopen,那么直接将fsockopen函数替换为pfsockopen.具体操作:搜索程序中的字符串 fsockopen( 替换

  • 在asp.NET 中使用SMTP发送邮件的实现代码

    核心代码: 复制代码 代码如下: public class Mail { #region 邮件参数 static public string accountName = System.Configuration.ConfigurationManager.AppSettings["SmtpAccountName"]; static public string password = System.Configuration.ConfigurationManager.AppSettings[

  • ecshop实现smtp发送邮件

    使用ECShop的smtp方式发送邮件时,在cls_smtp类文件中,执行到get_data方法中的语句: 复制代码 代码如下: $line    = fgets($this->connection, 512); ;时,发生超时错误. 注释掉该函数的执行,直接发送邮件,则返回错误ehlo command failed. 但打印出链接数据时,确实连上了. 之前用别的程序发送邮件也是可以正常发送的,于是重新发送函数,改用phpmailer发送邮件. 复制代码 代码如下: function smtp_

  • Python基于SMTP发送邮件的方法

    在很多时候,使用 Python 发送邮件可能没有办法使用邮件服务器提供的 API,因为不是所有的邮件服务商都会提供 API 供客户使用的. 通常使用邮件 API 的邮件发送服务都需要额外的收费. 因此我们再邮件测试发送的时候,可能需要的是 SMTP 邮件发送服务,通常这个服务是所有邮件服务商都会提供的. 要使用 SMTP 邮件发送服务,你需要有下面的信息才可以完成和测试: SMTP 邮件服务器的地址,端口,登录用户名和登录用户密码 发送和接收邮件的地址 邮件的主题和正文 看起来是不是有点复杂,实

随机推荐