func_ext.php,fsockopen和pfsockopen函数替换
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函数替换相关推荐
- php函数fsockopen设置,PHP函数:fsockopen
fsockopen() - Open Internet or Unix domain socket connection 一.如何禁用fsockopen() 下面是两种常用的禁用fsockopen的方 ...
- R语言广义线性模型函数GLM、glm函数构建泊松回归模型、模型中存在过离散(Overdispersion)、则将连接函数从possion函数替换为quasipoisson函数重新构建泊松回归模型
R语言广义线性模型函数GLM.glm函数构建泊松回归模型(Poisson regression).模型中存在过离散(Overdispersion).则将连接函数从possion函数替换为quasipo ...
- R语言使用str_replace函数和str_replace_all函数替换字符串中匹配到的模式:str_replace函数替换第一个匹配到的字符串、str_replace_all函数替换所有匹配到的
R语言使用str_replace函数和str_replace_all函数替换字符串中匹配到的模式:str_replace函数替换第一个匹配到的字符串.str_replace_all函数替换所有匹配到的 ...
- pandas使用applymap函数替换dataframe的内容或者数值:applymap函数使用字典替换多个列的内容(数值)
pandas使用applymap函数替换dataframe的内容或者数值:applymap函数使用字典替换多个列的内容(数值) 目录
- pandas使用replace函数替换dataframe中的值:replace函数对dataframe中的多个值进行替换、即一次性同时对多个值进行替换操作
pandas使用replace函数替换dataframe中的值:replace函数对dataframe中的多个值进行替换.即一次性同时对多个值进行替换操作 目录
- pandas使用replace函数替换dataframe中的值:replace函数使用正则表达式对dataframe中的值进行替换
pandas使用replace函数替换dataframe中的值:replace函数使用正则表达式对dataframe中的值进行替换 目录
- pandas使用replace函数替换dataframe中的值:replace函数对dataframe中指定数据列的值进行替换、替换具体数据列的相关值
pandas使用replace函数替换dataframe中的值:replace函数对dataframe中指定数据列的值进行替换.替换具体数据列的相关值 目录
- R语言sub函数和gsub函数替换(replace)匹配的字符串实战
R语言sub函数和gsub函数替换(replace)匹配的字符串实战 目录 R语言sub函数和gsub函数替换(replace)匹配的字符串实战 #基本语法
- python lamda函数_python 用lambda函数替换for循环的方法
场景如下: 现在有一个dataframe,其中一列为score,值从0-100, df: score 98 88 37 68 86 33 现在需要增加一列level,给这些分数分类,90分以上为A,6 ...
最新文章
- axios get请求_Axios使用指南
- Maven实践:版本管理 SNAPSHOT
- decorator and @property
- 芯片开发者46%年收入达30万元,7纳米制程以内开发者30%超50万元
- GNU make manual 翻译( 一百八十三)
- iOS web与JS交互
- VTK:PolyData之BooleanOperationPolyDataFilter
- 推荐9部让你看到酣畅淋漓的复仇电影
- Roslyn项目系统简介
- oracle数据库解锁表
- jQuery框架学习第三天:如何管理jQuery包装集
- 在Ubuntu下安装软件
- Kotlin入门(9)函数的基本用法
- 64位计算机比32快多少,电脑系统应该选择64位还是32位 到底哪个速度更快?
- markdown段落首行缩进2个字符
- 1. VCS仿真原理——当我们谈论simv时,我们在谈论什么
- html_css_尺寸调整/调整图片样式(img/max-widht/object-fit)
- 20189220 余超《Linux内核原理与分析》第五周作业
- 地铁听书系列之“看破不说破,81个为人处事潜规则”8月圆满收尾20220831
- 电视机计算机英语,电视电脑的优缺点英语作文
热门文章
- java金字塔显示_java控制台输出数字金字塔示例分享
- 荆楚理工学院计算机科学专业,荆楚理工学院计算机科学与技术专业2016年在湖北理科高考录取最低分数线...
- wxpython textctrl_wxPython控件学习之TextCtrl(一)单行文本框
- Keras——保存和提取模型
- 将本地项目上传到github详解
- Linux下C++ Socket编程实例
- Linux 信号(signal)
- 病毒防疫管理系统基于VS2017 .netcore2.2
- Java初学者笔记五:泛型处理
- 移植最新版libmemcached到VC++的艰苦历程和经验总结(上)