當談到關于PHP 5.5.9的時候,很難避免提到該版本的一些CVE(CVE-2014-8142, CVE-2015-5589, CVE-2015-6833等)。這些可能會導致安全漏洞的CVE讓PHP 5.5.9變得十分脆弱,因此正是因為這些漏洞,使得該版本的PHP引擎已經被證實是不安全的。下面,我們將詳細探討PHP 5.5.9以及其對應的安全漏洞。
首先我們需要介紹一下什么是CVE。CVE(Common Vulnerabilities and Exposures,公共漏洞與披露)是MITRE公司(其管理著美國的網絡攻擊與防御)為了管理電腦安全漏洞而設立的機構,并提供漏洞列表及標示系統。
對于PHP 5.5.9而言,CVE-2014-8142和CVE-2015-5589是兩個最為常見的漏洞。CVE-2014-8142是一種未授權訪問潛在性安全漏洞,這意味著這個漏洞可能被黑客用來繞過系統的支付和進入確認流程。其次,CVE-2015-5589可能導致資源枯竭(denial-of-service,DoS)攻擊。如果攻擊者能夠成功利用該漏洞,他們可以通過瞬間消耗Web服務器的CPU和內存等資源,使得整個系統崩潰。
漏洞CVE-2015-6833也是PHP 5.5.9中的一大問題。這個安全漏洞會允許惡意通過網絡傳輸的數據去改變服務器系統上的文件并且感染整個網站。如果存在這種情況,黑客可以獲取網站上傳的所有數據并利用這個漏洞訪問和操控敏感信息。
<?php function check_user($user, $pass){ $mysql = mysqli_connect("localhost", "root", "passw0rd", "users"); $user = mysqli_real_escape_string($mysql, $user); $pass = mysqli_real_escape_string($mysql, $pass); $sql = "SELECT * FROM users WHERE username='$user' AND password='$pass'"; $data = mysqli_query($mysql, $sql); $row = mysqli_fetch_array($data); if($row) { $response['status'] = true; } else{ $response['status'] = false; } return json_encode($response); } ?>
代碼漏洞是一個常見的問題,我們經常會看到大公司遭受襲擊,就是因為他們的開發人員在些看起來并無問題的代碼中開了一些 的后門。在這個例子中,$sql變量是由用戶提交進來的。如果惡意客戶端在$username或$password中輸入了刪除語句,這個SQL查詢的結果就會與預期的不同。mysqli_real_escape_string功能是對在MySQL中使用的特殊字符進行轉義。并不是正確的方法。
總結而言,幾種CVE對PHP 5.5.9的影響很明顯。這是很多公司都應該考慮的問題,畢竟這些漏洞提供了黑客攻擊網站和數據庫的機會。如果你使用的是PHP 5.5.9,最好的解決辦法是將其升級到更新的版本,以避免由此帶來的風險。