簡體   English   中英

通過PHP發布腳本的joomla管理員登錄錯誤的令牌

[英]joomla admin login via php post script wrong token

我正在嘗試創建一個腳本,該腳本以Joomla面板中的管理員身份自動登錄。 我正在使用snoopy進行后期查詢及其工作正常,只是Joomla的響應是安全令牌錯誤。 我使用JSession::getFormToken()獲取令牌,當我回顯它時會輸出一個令牌(但可能不是正確的令牌?)。

為什么我需要那? 我只想制作一個向我的網站授予管理員權限的腳本(該腳本將受密碼保護)並自動創建文章,但問題是Joomla(當前使用版本3.0)中的安全令牌,這是管理員登錄和也用於張貼文章。 有沒有可能更容易實現我的想法的方法?

這是我使用的腳本(順便說一句,該腳本在文章中,而我在本文中使用DirectPHP綁定PHP):

<?php include "Snoopy.class.php";
$snoopy = new Snoopy;
$x=JSession::getFormToken();
$submit_url = "http://domain.com/administrator/index.php";
$submit_vars["username"] = "admin";
$submit_vars["passwd"] = "mypassword";
$submit_vars["option"] = "com_login";
$submit_vars["task"] = "login";
$submit_vars["return"] = "aW3kDXgucMhw";
$submit_vars[$x] = "1";
if($snoopy->submit($submit_url,$submit_vars))
{
    while(list($key,$val) = each($snoopy->headers))
        echo $key.": ".$val."<br>\n";
    echo "<p>\n";

    echo "<PRE>".htmlspecialchars($snoopy->results)."</PRE>\n";
}
else
    echo "error fetching document: ".$snoopy->error."\n"; ?>

輸出如下:

    0: HTTP/1.1 200 OK
1: Date: Sat, 21 Dec 2013 15:02:53 GMT
2: Server: Apache
3: X-Powered-By: PHP/5.3.28
4: Connection: close
5: Content-Type: text/html

Die Anfrage wurdezurückgewiesen,達希爾(Sicherheitstoken)作家。 知識和實踐是正確的。 (表示查詢由於安全令牌錯誤而被拒絕)

因此,我如何獲得“正確的”安全令牌,或者有更簡單的方法來實現我的想法。 提前致謝。

我有一個類似的問題。

我正在使用jQuery從前端登錄用戶(當然,在他們已經通過身份驗證之后)並收到相同的響應。 我正在使用$document->addScriptDeclaration()將會話令牌轉換為JavaScript變量。

我認為當您在前端調用JSession::getFormToken()時,就會出現此問題。

我通過編寫一個小插件進行了測試, onAfterInitialize做了類似的事情:

function onAfterInitialise()
{
   $request = JFactory::getApplication()->input->get->get('ajaxGet', '', 'string');
   $admin = JFactory::getApplication()->isAdmin();


    if(  $request == "token" and $admin){
        echo json_encode(array("token" => JSession::getFormToken()));
        exit();
    }
}

請注意,我不建議您將這種產品用於任何形式的生產。 這只是為了測試。

因此,使用我的jQuery腳本,我首先向/adminstrator.php調用了GET請求,並收到了上述JSON。 然后,我使用該令牌發出登錄請求,然后登錄成功。

似乎Joomla在區分前端和后端生成的令牌方面做得很好。

希望這可以幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM