公眾平台調整SSL安全策略,請開發者注意升級
近一段時間HTTPS加密協議SSL曝出高危漏洞,可能導致網絡中傳輸的數據被黑客監聽,對用戶信息、網絡賬號密碼等安全構成威脅。為保證用戶信息以及通信安全,微信公眾平台將關閉掉SSLv2、SSLv3版本支持,不再支持部分使用SSLv2、 SSLv3或更低版本的客戶端調用。請仍在使用這些版本的開發者於11月30日前盡快修復升級。
注意:通過微信開放平台(open.weixin.qq.com)進行移動應用和網頁應用開發的開發者也同樣需要修復升級。
建議開發者使用如下方法進行修復:
OpenSSL(http://www.openssl.org)可使用SSL_CTX *SSL_CTX_new(const SSL_METHOD *method)函數設置SSL客戶端請求方法,使用TLSv1_client_method或更高版本。
示例1(php):
curl_setopt($curl, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1);
示例2(C#):
System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12
使用舉例
在生成自定義菜單時,使用了一個https_request函數,這個函數需要原來是這樣的
在生成自定義菜單時,使用了一個https_request函數,這個函數需要原來是這樣的
/* 方倍工作室 http://www.cnblogs.com/txw1958/ CopyRight 2014 All Rights Reserved */ function https_request($url, $data = null) { $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE); if (!empty($data)){ curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_POSTFIELDS, $data); } curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); $output = curl_exec($curl); curl_close($curl); return $output; }
現在要加入ssl的版本控制
/* 方倍工作室 http://www.cnblogs.com/txw1958/ CopyRight 2014 All Rights Reserved */ function https_request($url, $data = null) { $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE); curl_setopt($curl, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1); if (!empty($data)){ curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_POSTFIELDS, $data); } curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); $output = curl_exec($curl); curl_close($curl); return $output; }