熱門問題:國際域名注冊信息更新 郵箱設置 主機管理 ftp ICP備案問題集錦 如何使用SQL數據庫
 
 
您現在的位置:首頁 > 信息中(zhōng)心 > 億騰公告

關于fsockopen pfsockopen函數安全問題

時間:2012-06-13     來源:    
 

尊敬的億騰用戶:

您好!

    我(wǒ)(wǒ)們發現fsockopen pfsockopen函數存在着重大(dà)安全隐患,會對整個機房産生(shēng)極大(dà)的影響,爲了維護機房以及自身網絡的穩定,我(wǒ)(wǒ)們不得不在所有主機産品上禁用fsockopen pfsockopen函數,我(wǒ)(wǒ)們會首先将隐患發生(shēng)較重的服務器着手操作,其他的服務器會分(fēn)批分(fēn)量進行,有使用此功能的網站建議用戶提前修改程序,以免影響網站的正常使用,給您帶來不便,請您諒解!如有疑問,您可以緻電億騰客服中(zhōng)心,電話(huà):0717-6463660
    

關于fsockopen pfsockopen函數被禁用的解決方法

   一(yī)、
   
   服務器同時禁用了fsockopen pfsockopen,那麽用其他函數代替,如stream_socket_client()。注意:stream_socket_client()和fsockopen()的參數不同。
   具體(tǐ)操作:
   搜索程序中(zhōng)的字符串 fsockopen( 替換爲 stream_socket_client( ,然後,将原fsockopen函數中(zhōng)的端口參數“80”删掉,并加到$host。
   示例如下(xià)
   
   修改前:
   
   $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被禁用,又(yòu)沒有stream_socket_client()怎麽辦呢?自己寫一(yī)個函數實現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;
   }
   
   具體(tǐ)操作:
   
   1.首先找到使用fsockopen函數的代碼段,将上面代碼加至其上端,搜索該代碼段中(zhōng)的字符串 fsockopen( 替換爲 b_fsockopen( 。
   
   2.因爲fsockopen函數返回文件指針所以可以被文件函數操作,但是這個b_fsockopen函數沒能返回文件指針,需要繼續修改代碼段:用socket_read( 替換掉 fread(    ,用socket_write( 替換掉fwrite( ,用socket_close( 替換掉fclose( 。
   
   三、
   
   使用CMS類網站程序的用戶,如織夢CMS,phpwind,帝國,等程序,請将您的程序升級到最新的版本并及時更新安全漏洞補丁。     

億騰客服部

2012.6.13

恰逢ICANN國際大(dà)會,.top域名知(zhī)
億騰科技2015抗戰勝利日放(fàng)假通知(zhī)
35000自然雙拼top保留域名開(kāi)放(fàng)搶
億騰科技2015端午節放(fàng)假通知(zhī)
億騰科技2015勞動節放(fàng)假通知(zhī)
【轉】關于新網的.cn/中(zhōng)國/公司/
搶注top域名,優惠多多更有好禮相
 
 全國免費(fèi)服務熱線:
 
 
copyright© 2003-2009 宜昌億騰信息服務有限公司 All Rights Reserved
公司地址:湖北(běi)省宜昌市東山大(dà)道129号時代天驕7FA05   郵編:443000   
全國免費(fèi)熱線:800 880 3058   電話(huà)總機:0717 - 6466608 6466782 6453806 6855676
直銷熱線:總機轉8001   渠道熱線:總機轉8007   網建熱線:總機轉8041   财務熱線:總機轉8010
售後技術專線:0717-6463660   傳真号碼:0717-6466783   投訴專線:總機轉8009
鄂ICP備05003992号許可證編号 B2-20030065号