導緻這一(yī)問題的核心原因是:fsockopen pfsockopen函數被禁用,導緻SMTP發送郵件不正常!
一(yī):黑客經常會利用程序漏洞注入後使用 fsockopen 進行PHPDDOS 攻擊,導緻服務器不穩定,現在将危險函數fsockopen 禁用,部分(fēn)程序功能可能有問題,以下(xià)列出已知(zhī)問題及通用解決方法:
通用解決方法:
找到程序裏的 fsockopen 函數,替換爲:pfsockopen,即可解決所有問題,兩個函數的區别在于 pfsockopen 保持keep-alive,使得黑客無法進行連接數攻擊。
已知(zhī)使用 fsockopen 函數的程序文件路徑(在fsockopen 前加 p, 即fsockopen 修改爲 pfsockopen 即可)
二:如果服務器同時禁用了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 = stream_socket_client($host."80", $errno, $errstr, 30);
國内主流PHP網站涉及fsockopen函數的網站系統中(zhōng)的文件列表:
DEDECMS:
sourcefunctionfunction_core.php 這個文件有2處fsockopen,另外(wài)的是pfsockopen,請注意區分(fēn) |
Discuz! 2.5:
sourcefunctionfunction_core.php 這個文件有2處fsockopen,另外(wài)的是pfsockopen,請注意區分(fēn) |
ecms(帝國):
eclassclass.smtp.php |
ECSHOP:
adminindex.php |
shopex:
coreapiincludeapi_utility.php coreapitools1.0api_b2b_1_0_tools.php corefunc_ext.php corelibnusoap.php corelibuc_clientclient.php instalsvinfo.php pluginspassportpassport.ucenter.php pluginspaymentpay.nochek.php pluginspay.paypal.php pluginspay.paypal.server.php pluginspay.paypal_cn.php |
請注意上述把文件夾名和文件名連在一(yī)起寫了,大(dà)家查找時候依次進入目錄路勁查找對應文件即可;
下(xià)一(yī)篇 ecshop上傳商(shāng)品圖片提示不支持圖片格式
上一(yī)篇: 怎樣通過微信公衆号找到小(xiǎo)程序