關于fsockopen pfsockopen函數安全問題的公告
尊敬的息壤用戶:
您好!
?? ??我們發現fsockopen pfsockopen函數存在著重大安全隱患,會對整個機房產生極大的影響,為了維護機房以及自身網絡的穩定,我們不得不在所有主機產品上 ?? 禁用fsockopen pfsockopen函數,我們會首先將隱患發生較重的服務器著手操作,其他的服務器會分批分量進行,有使用此功能的網站建議用戶提前修改程序 ?? ,以免影響網站的正常使用,給您帶來不便,請您諒解!如有疑問,您可以致電息壤客服中心,電話:010-52600600
?? ??
關于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;
?? }
??
?? 具體操作:
??
?? 1.首先找到使用fsockopen函數的代碼段,將上面代碼加至其上端,搜索該代碼段中的字符串 fsockopen( 替換為 b_fsockopen( 。
??
?? 2.因為fsockopen函數返回文件指針所以可以被文件函數操作,但是這個b_fsockopen函數沒能返回文件指針,需要繼續修改代碼段:用socket_read( 替換掉 fread( ?? ??,用socket_write( 替換掉fwrite( ,用socket_close( 替換掉fclose( 。
??
?? 三、
??
?? 使用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
Copyright © 2008-2017 福建恒星網絡科技有限公司 版權所有 閩ICP備136238825 泉州網站建設|石獅網站建設|晉江網站建設|南安網站建設|永春網站建設|德化網站建設|安溪網站建設|德化網站建設|惠安網站建設|泉州網絡公司|南安網絡公司|晉江網絡公司|惠安網絡公司|永春網絡公司|安溪網絡公司|德化網絡公司|泉州網站優化|泉州SEO|永春SEO|安溪SEO|德化SEO|惠安SEO|石獅網站優化|石獅SEO|晉江網站優化|晉江SEO|泉州網頁設計|晉江網頁設計|南安網頁設計|永春網頁設計|德化網頁設計|泉州微信公眾平臺搭建|晉江微信公眾平臺搭建|石獅微信公眾平臺搭建|南安微信公眾平臺搭建