2013-03-15 108 views
2

我試圖創建一個登錄的Joomla網站絲毫的python pycurl小腳本, IM寫這樣的代碼:pycurl登錄的Joomla網站

import sys, re 
import pycurl 
import cStringIO 
import time 
import urllib 

def LoginJoomla(url): 
    buf = cStringIO.StringIO() 
    c = pycurl.Curl() 
    c.setopt(c.URL, url) 
    post_params = [('usrname','admin'),('passwd','1234567789'),('submit','Login')] 
    resp_data = urllib.urlencode(post_params) 
    c.setopt(c.POSTFIELDS, resp_data) 
    c.setopt(pycurl.POST, 1) 
    c.setopt(c.WRITEFUNCTION, buf.write) 
    c.perform() 
    html = buf.getvalue() 
    buf.close() 
    print html 

LoginJoomla("http://www.domain.com/administrator/index.php?option=com_user&view=login") 

蝙蝠不工作,給我正常的登錄網頁, 請任何機構可以說我在哪裏我錯了。

回答

2

首先閱讀但是!

你需要得到的URL參數正確的(我想你的URL是壞的):

POST to http://www.example.com/administrator/

以下參數:

  • 選項= com_login
  • 任務=登錄
  • username = YOURUSER(不是你的名字!)
  • passwd文件

從我關於Joomla的知識!認證,你不能這樣做,因爲Joomla!從網絡瀏覽器發送一個令牌,以確保表單是從瀏覽器發佈的。

如果它不是從瀏覽器發佈的,則會出現像'最近的請求被拒絕的錯誤,因爲它包含無效的安全令牌。請刷新頁面並重試。'

我知道可以遠程登錄到Joomla!,只是繼續搜索。您可能需要一個自定義身份驗證插件。

+0

感謝您的回覆 – AutoSoft 2013-03-17 13:28:05