From a77cf2292b1b5e010172b572f618aef78795456b Mon Sep 17 00:00:00 2001
From: thomascube <thomas@roundcube.net>
Date: Tue, 08 Feb 2011 03:13:06 -0500
Subject: [PATCH] Add optional referer check to prevent CSRF in GET requests

---
 index.php |    8 ++++++++
 1 files changed, 8 insertions(+), 0 deletions(-)

diff --git a/index.php b/index.php
index bf38874..f50cf2b 100644
--- a/index.php
+++ b/index.php
@@ -190,6 +190,14 @@
     $OUTPUT->show_message('invalidrequest', 'error');
     $OUTPUT->send($RCMAIL->task);
   }
+
+  // check referer if configured
+  if (!$request_check_whitelist[$RCMAIL->action] && $RCMAIL->config->get('referer_check') && !rcube_check_referer()) {
+    raise_error(array(
+      'code' => 403,
+      'type' => 'php',
+      'message' => "Referer check failed"), true, true);
+  }
 }
 
 // handle special actions

--
Gitblit v1.9.1