筍子工作雜記

7月 23, 2006

/xoops/banners.php err:找不到有效安全的權票

歸類於: xoops — shinnlu @ 3:42 pm

/xoops/banners.php 按下 Email Stats 會發生 _ER_SEC_NOTOKENFOUND 的錯誤

define("_ER_SEC_NOTOKENFOUND", "No valid security token found in session");
define("_ER_SEC_NOTOKENFOUND", "在 session 中找不到有效安全的權票");


原因是在按下 Email Stats 後,Security token 送出 $_REQUEST['t'],而在 validateToken 中卻是接收 $_REQUEST['XOOPS_TOKEN_REQUEST'],第十行為修正錯誤的程式碼

  1. /xoops/class/xoopssecurity.php
  2.     function validateToken($token = false, $clearIfValid = true)
  3.     {
  4.         global $xoopsLogger;
  5.         if ( file_exists(XOOPS_ROOT_PATH."/language/".$GLOBALS['xoopsConfig']['language']."/error.php") ) {
  6.             include_once XOOPS_ROOT_PATH."/language/".$GLOBALS['xoopsConfig']['language']."/error.php";
  7.         } else {
  8.             include_once XOOPS_ROOT_PATH."/language/english/error.php";
  9.         }
  10.         $_REQUEST['XOOPS_TOKEN_REQUEST'] = isset($_REQUEST['XOOPS_TOKEN_REQUEST']) ? $_REQUEST['XOOPS_TOKEN_REQUEST'] : $_REQUEST['t'];//修正security token抓不到的問題
  11.         $token = ($token === false) ? @$_REQUEST['XOOPS_TOKEN_REQUEST'] : $token;
  12.         if (empty($token) || empty($_SESSION['XOOPS_TOKEN_SESSION'])) {
  13.             $xoopsLogger->addExtra('Token Validation', _ER_SEC_NOTOKENFOUND);
  14.             $this->setErrors(_ER_SEC_NOTOKENFOUND);
  15.             return false;
  16.         }

但除非是安全性或其他必要修正,核心儘量不要去動到,所以我選擇修改

  1. /xoops/banners.php
  2. $_REQUEST['XOOPS_TOKEN_REQUEST'] = isset($_REQUEST['XOOPS_TOKEN_REQUEST']) ? $_REQUEST['XOOPS_TOKEN_REQUEST'] : $_REQUEST['t'];//修正security token抓不到的問題 by shinn 2006/07/22
  3. switch ( $op ) {
  4. case "click":

其實這一隻程式 banners.php 除了 security token 的問題以外,還有另一個問題是每一個連結都包含了明文的密碼,雖然這個密碼對於整個系統的安全性比較小,但是卻能更改廣告商的廣告連結位址,想要修正的人可以下載
Xoops banner.php 錯誤修正,下載後更改檔案名稱為 banners.php 後,取代 /xoops/banners.php 即可

尚無評論 »

尚無評論。

RSS feed 此篇文章的評論。 TrackBack URL

發表您的評論

Powered by WordPress counter stats Total Hits:49627 | Total Hits Today:50 | IP Visited:16207 | Unique referers:10282