2

python pycurl を使用して joomla Web サイトにログインするための小さなスクリプトを作成してみます。次のコードを記述します。

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")

バットが機能しません。通常のログイン Web ページを教えてください。どこが間違っているか教えてください。

4

3 に答える 3

2

しかし、最初に読んでください!

URL パラメーターを正しく取得する必要があります (URL が悪いと思います)。

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

のパラメーターを使用します。

  • オプション=com_login
  • タスク=ログイン
  • username=YOURUSER (あなたが持っている usrname ではありません!)
  • パスワード

しかし、Joomlaについての私の知識から!認証、この方法ではできません。Joomla! フォームがブラウザから投稿されたことを確認するために、Web ブラウザからトークンが送信されます。

ブラウザから投稿されていない場合、「無効なセキュリティ トークンが含まれていたため、最新のリクエストは拒否されました。ページを更新して、もう一度お試しください。

Joomla! にリモートでログインできることはわかっています。検索を続けてください。カスタム認証プラグインが必要になる場合があります。

于 2013-03-15T19:41:04.467 に答える