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 = fsockopen($host, $port, $errno, $errstr, $connection_timeout);

修改后:

$fp = stream_socket_client("tcp://".$host."80", $errno, $errstr, 30);

$fp = stream_socket_client("tcp://".$host.":".$port, $errno, $errstr, $connection_timeout);

如果PHP版本低于5.0,fsockopen被禁用,又没有stream_socket_client()怎么办呢?自己写一个函数实现fsockopen的功能,参考代码:

function b_fsockopen($host, $port, &$errno, &$errstr, $timeout) {

$ip = gethostbyname($host);

$s = socket_create(AF_INET, SOCK_STREAM, 0);

if (socket_set_nonblock($s)) {

$r = @socket_connect($s, $ip, $port);

if ($r || socket_last_error() == EINPROGRESS) {

$errno = EINPROGRESS;

return $s;

}

}

$errno = socket_last_error($s);

$errstr = socket_strerror($errno);

socket_close($s);

return false;

}

使用CMS类网站程序的用户,如织梦CMS,phpwind,帝国,等程序,请将您的程序升级到最新的版本并及时更新安全漏洞补丁。    国内主流CMS网站涉及到fsockopen函数的网站系统文件路径列表,如下:

DEDECMS:

dede\api_ucenter.php

dede\index_testenv.php

dede\module_main.php

dede\plus_bshare.php

dede\testenv.php

dede\include\dedecollection.func.php

dede\include\dedehttpdown.class.php

dede\include\mail.class.php

dede\include\sphinxclient.class.php

dede\plus\bshare.php

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

func_ext.php,fsockopen和pfsockopen函数替换相关推荐

  1. php函数fsockopen设置,PHP函数:fsockopen

    fsockopen() - Open Internet or Unix domain socket connection 一.如何禁用fsockopen() 下面是两种常用的禁用fsockopen的方 ...

  2. R语言广义线性模型函数GLM、glm函数构建泊松回归模型、模型中存在过离散(Overdispersion)、则将连接函数从possion函数替换为quasipoisson函数重新构建泊松回归模型

    R语言广义线性模型函数GLM.glm函数构建泊松回归模型(Poisson regression).模型中存在过离散(Overdispersion).则将连接函数从possion函数替换为quasipo ...

  3. R语言使用str_replace函数和str_replace_all函数替换字符串中匹配到的模式:str_replace函数替换第一个匹配到的字符串、str_replace_all函数替换所有匹配到的

    R语言使用str_replace函数和str_replace_all函数替换字符串中匹配到的模式:str_replace函数替换第一个匹配到的字符串.str_replace_all函数替换所有匹配到的 ...

  4. pandas使用applymap函数替换dataframe的内容或者数值:applymap函数使用字典替换多个列的内容(数值)

    pandas使用applymap函数替换dataframe的内容或者数值:applymap函数使用字典替换多个列的内容(数值) 目录

  5. pandas使用replace函数替换dataframe中的值:replace函数对dataframe中的多个值进行替换、即一次性同时对多个值进行替换操作

    pandas使用replace函数替换dataframe中的值:replace函数对dataframe中的多个值进行替换.即一次性同时对多个值进行替换操作 目录

  6. pandas使用replace函数替换dataframe中的值:replace函数使用正则表达式对dataframe中的值进行替换

    pandas使用replace函数替换dataframe中的值:replace函数使用正则表达式对dataframe中的值进行替换 目录

  7. pandas使用replace函数替换dataframe中的值:replace函数对dataframe中指定数据列的值进行替换、替换具体数据列的相关值

    pandas使用replace函数替换dataframe中的值:replace函数对dataframe中指定数据列的值进行替换.替换具体数据列的相关值 目录

  8. R语言sub函数和gsub函数替换(replace)匹配的字符串实战

    R语言sub函数和gsub函数替换(replace)匹配的字符串实战 目录 R语言sub函数和gsub函数替换(replace)匹配的字符串实战 #基本语法

  9. python lamda函数_python 用lambda函数替换for循环的方法

    场景如下: 现在有一个dataframe,其中一列为score,值从0-100, df: score 98 88 37 68 86 33 现在需要增加一列level,给这些分数分类,90分以上为A,6 ...

最新文章

  1. axios get请求_Axios使用指南
  2. Maven实践:版本管理 SNAPSHOT
  3. decorator and @property
  4. 芯片开发者46%年收入达30万元,7纳米制程以内开发者30%超50万元
  5. GNU make manual 翻译( 一百八十三)
  6. iOS web与JS交互
  7. VTK:PolyData之BooleanOperationPolyDataFilter
  8. 推荐9部让你看到酣畅淋漓的复仇电影
  9. Roslyn项目系统简介
  10. oracle数据库解锁表
  11. jQuery框架学习第三天:如何管理jQuery包装集
  12. 在Ubuntu下安装软件
  13. Kotlin入门(9)函数的基本用法
  14. 64位计算机比32快多少,电脑系统应该选择64位还是32位 到底哪个速度更快?
  15. markdown段落首行缩进2个字符
  16. 1. VCS仿真原理——当我们谈论simv时,我们在谈论什么
  17. html_css_尺寸调整/调整图片样式(img/max-widht/object-fit)
  18. 20189220 余超《Linux内核原理与分析》第五周作业
  19. 地铁听书系列之“看破不说破,81个为人处事潜规则”8月圆满收尾20220831
  20. 电视机计算机英语,电视电脑的优缺点英语作文

热门文章

  1. java金字塔显示_java控制台输出数字金字塔示例分享
  2. 荆楚理工学院计算机科学专业,荆楚理工学院计算机科学与技术专业2016年在湖北理科高考录取最低分数线...
  3. wxpython textctrl_wxPython控件学习之TextCtrl(一)单行文本框
  4. Keras——保存和提取模型
  5. 将本地项目上传到github详解
  6. Linux下C++ Socket编程实例
  7. Linux 信号(signal)
  8. 病毒防疫管理系统基于VS2017 .netcore2.2
  9. Java初学者笔记五:泛型处理
  10. 移植最新版libmemcached到VC++的艰苦历程和经验总结(上)