Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[修改] fsockopen,pfsockopen函数被禁用时的修改办法

[复制链接]
tanglinkun 发表于 2013-3-29 15:59:56 | 显示全部楼层 |阅读模式
新手站长帮QQ群 83493273 有问题大家帮助你。

DISCUZ已经能判断当不支持fsockopen,pfsockopen时使用stream_socket_client来建立连接

但UC还没这样的处理。我们主要是修改UC。

修改uc_client/client.php

搜索

if(function_exists('fsockopen')) {
$fp = @fsockopen(($ip ? $ip : $host), $port, $errno, $errstr, $timeout);
} elseif (function_exists('pfsockopen')) {
$fp = @pfsockopen(($ip ? $ip : $host), $port, $errno, $errstr, $timeout);
} else {
$fp = false;
}

修改为

if(function_exists('fsockopen')) {
$fp = @fsockopen(($ip ? $ip : $host), $port, $errno, $errstr, $timeout);
} elseif (function_exists('pfsockopen')) {
$fp = @pfsockopen(($ip ? $ip : $host), $port, $errno, $errstr, $timeout);
} elseif(function_exists('stream_socket_client')) {
$fp = @stream_socket_client($ip.':'.$port, $errno, $errstr, $timeout);
} else {
$fp = false;
}

uc_client/model/misc.php

搜索

if(function_exists('fsockopen')) {
$fp = @fsockopen(($ip ? $ip : $host), $port, $errno, $errstr, $timeout);
} elseif (function_exists('pfsockopen')) {
$fp = @pfsockopen(($ip ? $ip : $host), $port, $errno, $errstr, $timeout);
} else {
$fp = false;
}

修改为

if(function_exists('fsockopen')) {
$fp = @fsockopen(($ip ? $ip : $host), $port, $errno, $errstr, $timeout);
} elseif (function_exists('pfsockopen')) {
$fp = @pfsockopen(($ip ? $ip : $host), $port, $errno, $errstr, $timeout);
} elseif(function_exists('stream_socket_client')) {
$fp = @stream_socket_client($ip.':'.$port, $errno, $errstr, $timeout);
} else {
$fp = false;
}

uc_server/model/misc.php

搜索

if(function_exists('fsockopen')) {
$fp = @fsockopen(($ip ? $ip : $host), $port, $errno, $errstr, $timeout);
} elseif (function_exists('pfsockopen')) {
$fp = @pfsockopen(($ip ? $ip : $host), $port, $errno, $errstr, $timeout);
} else {
$fp = false;
}

修改为

if(function_exists('fsockopen')) {
$fp = @fsockopen(($ip ? $ip : $host), $port, $errno, $errstr, $timeout);
} elseif (function_exists('pfsockopen')) {
$fp = @pfsockopen(($ip ? $ip : $host), $port, $errno, $errstr, $timeout);
} elseif(function_exists('stream_socket_client')) {
$fp = @stream_socket_client($ip.':'.$port, $errno, $errstr, $timeout);
} else {
$fp = false;
}

改完这三个文件后,通信成功了,但数据同步还是失败的,还需要在UC应用管理里给应用IP 填上网站的IP。


huayutz 发表于 2013-3-30 20:03:23 | 显示全部楼层
感谢分享,貌似有很多不支持fsockopen,据说是安全性
回复

使用道具 举报

 楼主| tanglinkun 发表于 2013-3-31 00:47:18 | 显示全部楼层
本帖最后由 tanglinkun 于 2013-3-31 00:48 编辑
huayutz 发表于 2013-3-30 20:03
感谢分享,貌似有很多不支持fsockopen,据说是安全性

这个安全性是针对空间商而言的。
一般情况下对于用户自己没影响。
黑客利用程序漏洞注入后使用 fsockopen 进行可以进行PHPDDOS 攻击
空间商有人监管的话发现这个 及时处理就好了。
主要提醒用户自己注意安全。被入侵才会有风险。

很多空间商禁止这个是为了给自己省麻烦。

有需要完美支持DISCUZ的空间加QQ群 83493273
回复

使用道具 举报

551982342 发表于 2013-3-31 00:58:51 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

歌斐木 发表于 2013-5-2 19:57:14 | 显示全部楼层
貌似你的办法不管用
回复

使用道具 举报

亲D 发表于 2013-6-10 15:42:30 | 显示全部楼层
歌斐木 发表于 2013-5-2 19:57
貌似你的办法不管用

是的. 不管用
回复

使用道具 举报

草根人生 发表于 2013-6-19 00:44:51 | 显示全部楼层
还是不冒那个险了,改一大堆一升级,又完了。
回复

使用道具 举报

╰兲使绛瀶夜 发表于 2013-7-5 01:04:14 | 显示全部楼层
好像是不行,,还有方法没
回复

使用道具 举报

aidier 发表于 2013-8-14 19:38:17 | 显示全部楼层
好像不顶用!!!!!!!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-11-15 18:52 , Processed in 0.039703 second(s), 6 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表