問題: 您能否詳細說明如何應用維基百科文章中提到的技術防止PHP 中的CSRF,特別是在Kohana中
答案:
要防止PHP 中的CSRF,您可以實施以下措施:
// On the page requesting to delete a record session_start(); $token = isset($_SESSION['delete_customer_token']) ? $_SESSION['delete_customer_token'] : ""; if (!$token) { // Generate and persist a new token $token = md5(uniqid()); $_SESSION['delete_customer_token']= $token; } session_write_close();
// When actually performing the deletion session_start(); // Validate the token $token = isset($_SESSION['delete_customer_token']) ? $_SESSION['delete_customer_token'] : ""; if ($token && $_POST['token'] === $token) { // Delete the record ... // Remove the token after successful deletion unset($_SESSION['delete_customer_token']); } else { // Log a potential CSRF attack } session_write_close();
檢查 HTTP Referer 標頭。
Referer 標頭包含頁面的 URL引用目前頁面。如果 Referer 標頭與預期值不匹配,則可能表示存在 CSRF 攻擊。 在 Kohana 中,您可以使用 Request::referrer() 方法來擷取參考 URL。為了確保引用網址合法,您可以將其與允許引用您網站的受信任網域清單進行比較。 透過實施這些措施,您可以幫助保護您的 PHP 應用程式免受 CSRF 攻擊。以上是如何防止 PHP 中的 CSRF 攻擊,特別是使用 Kohana 框架?的詳細內容。更多資訊請關注PHP中文網其他相關文章!