Index: branches/version-2_13-dev/data/class/pages/products/LC_Page_Products_Detail.php
===================================================================
--- branches/version-2_13-dev/data/class/pages/products/LC_Page_Products_Detail.php	(revision 22857)
+++ branches/version-2_13-dev/data/class/pages/products/LC_Page_Products_Detail.php	(revision 22924)
@@ -70,4 +70,12 @@
         $this->arrDELIVERYDATE = $masterData->getMasterData('mtb_delivery_date');
         $this->arrRECOMMEND = $masterData->getMasterData('mtb_recommend');
+
+        // POST に限定する mode
+        $this->arrLimitPostMode[] = 'cart';
+        $this->arrLimitPostMode[] = 'add_favorite';
+        $this->arrLimitPostMode[] = 'add_favorite_sphone';
+        $this->arrLimitPostMode[] = 'select';
+        $this->arrLimitPostMode[] = 'select2';
+        $this->arrLimitPostMode[] = 'selectItem';
     }
 
Index: branches/version-2_13-dev/data/class/pages/LC_Page.php
===================================================================
--- branches/version-2_13-dev/data/class/pages/LC_Page.php	(revision 22857)
+++ branches/version-2_13-dev/data/class/pages/LC_Page.php	(revision 22924)
@@ -74,4 +74,6 @@
     var $plugin_activate_flg = PLUGIN_ACTIVATE_FLAG;
 
+    /** POST に限定する mode */
+    var $arrLimitPostMode = array();
     /**
      * Page を初期化する.
@@ -115,4 +117,6 @@
     function process()
     {
+        // POST に限定された mode か検証する。
+        $this->checkLimitPostMode();
     }
 
@@ -369,7 +373,6 @@
      * リクエストパラメーター 'mode' を取得する.
      *
-     * 1. $_GET['mode'] の値を取得する.
-     * 2. 1 が存在しない場合は $_POST['mode'] の値を取得する.
-     * 3. どちらも存在しない場合は null を返す.
+     * 1. $_REQUEST['mode'] の値を取得する.
+     * 2. 存在しない場合は null を返す.
      *
      * mode に, 半角英数字とアンダーバー(_) 以外の文字列が検出された場合は null を
@@ -377,5 +380,5 @@
      *
      * @access protected
-     * @return string $_GET['mode'] 又は $_POST['mode'] の文字列
+     * @return string|null $_REQUEST['mode'] の文字列
      */
     function getMode()
@@ -383,8 +386,6 @@
         $pattern = '/^[a-zA-Z0-9_]+$/';
         $mode = null;
-        if (isset($_GET['mode']) && preg_match($pattern, $_GET['mode'])) {
-            $mode =  $_GET['mode'];
-        } elseif (isset($_POST['mode']) && preg_match($pattern, $_POST['mode'])) {
-            $mode = $_POST['mode'];
+        if (isset($_REQUEST['mode']) && preg_match($pattern, $_REQUEST['mode'])) {
+            $mode =  $_REQUEST['mode'];
         }
 
@@ -462,3 +463,16 @@
         SC_Utils_Ex::sfPrintR($val);
     }
+
+    /**
+     * POST に限定された mode か検証する。
+     *
+     * POST 以外で、POST に限定された mode を実行しようとした場合、落とす。
+     * @return void
+     */
+    function checkLimitPostMode() {
+        if ($_SERVER['REQUEST_METHOD'] !== 'POST' && in_array($mode = $this->getMode(), $this->arrLimitPostMode)) {
+            $msg = "REQUEST_METHOD=[{$_SERVER['REQUEST_METHOD']}]では実行不能な mode=[$mode] が指定されました。";
+            trigger_error($msg, E_USER_ERROR);
+        }
+    }
 }
