關(guān)于fsockopen pfsockopen函數(shù)安全問題的公告
尊敬的息壤用戶:
您好!
?? ??我們發(fā)現(xiàn)fsockopen pfsockopen函數(shù)存在著重大安全隱患,會對整個機(jī)房產(chǎn)生極大的影響,為了維護(hù)機(jī)房以及自身網(wǎng)絡(luò)的穩(wěn)定,我們不得不在所有主機(jī)產(chǎn)品上 ?? 禁用fsockopen pfsockopen函數(shù),我們會首先將隱患發(fā)生較重的服務(wù)器著手操作,其他的服務(wù)器會分批分量進(jìn)行,有使用此功能的網(wǎng)站建議用戶提前修改程序 ?? ,以免影響網(wǎng)站的正常使用,給您帶來不便,請您諒解!如有疑問,您可以致電息壤客服中心,電話:010-52600600
?? ??
關(guān)于fsockopen pfsockopen函數(shù)被禁用的解決方法
?? 一、
??
?? 服務(wù)器同時禁用了fsockopen pfsockopen,那么用其他函數(shù)代替,如stream_socket_client()。注意:stream_socket_client()和fsockopen()的參數(shù)不同。
?? 具體操作:
?? 搜索程序中的字符串 fsockopen( 替換為 stream_socket_client( ,然后,將原fsockopen函數(shù)中的端口參數(shù)“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()怎么辦呢?自己寫一個函數(shù)實現(xiàn)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;
?? }
??
?? 具體操作:
??
?? 1.首先找到使用fsockopen函數(shù)的代碼段,將上面代碼加至其上端,搜索該代碼段中的字符串 fsockopen( 替換為 b_fsockopen( 。
??
?? 2.因為fsockopen函數(shù)返回文件指針?biāo)钥梢员晃募瘮?shù)操作,但是這個b_fsockopen函數(shù)沒能返回文件指針,需要繼續(xù)修改代碼段:用socket_read( 替換掉 fread( ?? ??,用socket_write( 替換掉fwrite( ,用socket_close( 替換掉fclose( 。
??
?? 三、
??
?? 使用CMS類網(wǎng)站程序的用戶,如織夢CMS,phpwind,帝國,等程序,請將您的程序升級到最新的版本并及時更新安全漏洞補(bǔ)丁。 ?? ??國內(nèi)主流CMS網(wǎng)站涉及到fsockopen函數(shù)的網(wǎng)站系統(tǒng)文件路徑列表,如下: ?? ??
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,請注意區(qū)分
?? uc_client\client.php 這個文件有2處fsockopen,另外的是pfsockopen,請注意區(qū)分
?? uc_client\lib\sendmail.inc.php
?? uc_client\model\misc.php 這個文件有2處fsockopen,另外的是pfsockopen,請注意區(qū)分
?? uc_server\install\func.inc.php 這個文件有2處fsockopen,另外的是pfsockopen,請注意區(qū)分
?? uc_server\lib\sendmail.inc.php
?? uc_server\model\misc.php 這個文件有2處fsockopen,另外的是pfsockopen,請注意區(qū)分
??
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
關(guān)注有驚喜
Copyright © 2016-2022 甜城致愛網(wǎng)絡(luò) 版權(quán)所有 備案號:蜀ICP備20008165號 川公網(wǎng)安備 51100202000208號 電子營業(yè)執(zhí)照