簡體   English   中英

Python請求模塊驗證HTTP登錄是否成功

[英]Python requests module to verify if HTTP login is successful or not

我一直在嘗試在這里這里實現類似的東西。

基本上我只想登錄一個網站並驗證 HTTP/S 身份驗證是否成功。

不幸的是,以下嘗試均無效。 我不知道登錄嘗試是否成功,因為我得到相同的<Response [200]>密碼是否正確無關緊要。

我還檢查了 HTTP 流量。 如果登錄失敗,登錄頁面會顯示如下信息( http://localhost/test/login.php

<div class="message">Login failed</div>

如果登錄成功,頁面將被重定向到index.php http://localhost/test/index.php

登錄頁面上的 HTML 表單http://localhost/test/login.php

<form action="login.php" method="post">
    <fieldset>
            <label for="user">Username</label> <input type="text" class="loginInput" size="20" name="username"><br> 
            <label for="pass">Password</label> <input type="password" class="loginInput" autocomplete="off" size="20" name="password"><br>
            <p class="submit"><input type="submit" value="Login" name="Login"></p>
    </fieldset>
</form>

以下代碼 1 - 5 將產生<Response [200]>而代碼 6 將顯示登錄頁面,如果用戶名/密碼錯誤則無關緊要。

代碼 1

import requests
url = 'http://localhost/test/login.php'
payload = {'username': 'admin', 'password': 'wrongpwd'}
requests.post(url, data=payload)

代碼 2

import requests
from requests.packages.urllib3.exceptions import InsecureRequestWarning
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
url = 'http://localhost/test/login.php'
payload = { 'username': 'admin', 'password': 'wrongpwd' }
requests.post(url, data=payload, verify=False)

代碼 3

import requests
headers = {'User-Agent': 'Mozilla/5.0'}
url     = 'http://localhost/test/login.php'
payload = {'username':'admin','pass':'wrongpwd'}
session = requests.Session()
resp    = session.get(url,headers=headers)
cookies = requests.utils.cookiejar_from_dict(requests.utils.dict_from_cookiejar(session.cookies))
resp    = session.post(url,headers=headers,data=payload,cookies=cookies)
session.get(url)

代碼 4

import requests
headers = {'User-Agent': 'Mozilla/5.0'}
url     = 'http://localhost/test/login.php'
payload = {'username':'admin','password':'wrongpwd'}
session = requests.Session()
session.post(url,headers=headers,data=payload)

代碼 5

import requests
from requests.auth import HTTPBasicAuth
url = 'http://localhost/test/login.php'
requests.get(url, auth=HTTPBasicAuth('admin', 'wrongpwd'))

代碼6 (只顯示登錄頁面)

import requests
url = 'http://localhost/test/login.php'
values = {'username': 'admin', 'password': 'wrongpwd'}
r = requests.post(url, data=values)
print(r.content)

如果登錄成功與否,我應該怎么做才能獲得驗證?

所需 Output

Login successful

或者

Login failed

如果我的問題不清楚,或者您需要進一步解釋,請告訴我。

我一直在嘗試在這里這里實現類似的東西。

基本上我只想登錄一個網站並驗證 HTTP/S 身份驗證是否成功。

不幸的是,以下嘗試均無效。 我不知道登錄嘗試是否成功,因為我得到相同的<Response [200]>密碼是否正確無關緊要。

我還檢查了 HTTP 流量。 如果登錄失敗,登錄頁面會顯示如下信息( http://localhost/test/login.php

<div class="message">Login failed</div>

如果登錄成功,頁面將被重定向到index.php http://localhost/test/index.php

登錄頁面上的 HTML 表單http://localhost/test/login.php

<form action="login.php" method="post">
    <fieldset>
            <label for="user">Username</label> <input type="text" class="loginInput" size="20" name="username"><br> 
            <label for="pass">Password</label> <input type="password" class="loginInput" autocomplete="off" size="20" name="password"><br>
            <p class="submit"><input type="submit" value="Login" name="Login"></p>
    </fieldset>
</form>

以下代碼 1 - 5 將產生<Response [200]>而代碼 6 將顯示登錄頁面,如果用戶名/密碼錯誤則無關緊要。

代碼 1

import requests
url = 'http://localhost/test/login.php'
payload = {'username': 'admin', 'password': 'wrongpwd'}
requests.post(url, data=payload)

代碼 2

import requests
from requests.packages.urllib3.exceptions import InsecureRequestWarning
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
url = 'http://localhost/test/login.php'
payload = { 'username': 'admin', 'password': 'wrongpwd' }
requests.post(url, data=payload, verify=False)

代碼 3

import requests
headers = {'User-Agent': 'Mozilla/5.0'}
url     = 'http://localhost/test/login.php'
payload = {'username':'admin','pass':'wrongpwd'}
session = requests.Session()
resp    = session.get(url,headers=headers)
cookies = requests.utils.cookiejar_from_dict(requests.utils.dict_from_cookiejar(session.cookies))
resp    = session.post(url,headers=headers,data=payload,cookies=cookies)
session.get(url)

代碼 4

import requests
headers = {'User-Agent': 'Mozilla/5.0'}
url     = 'http://localhost/test/login.php'
payload = {'username':'admin','password':'wrongpwd'}
session = requests.Session()
session.post(url,headers=headers,data=payload)

代碼 5

import requests
from requests.auth import HTTPBasicAuth
url = 'http://localhost/test/login.php'
requests.get(url, auth=HTTPBasicAuth('admin', 'wrongpwd'))

代碼6 (只顯示登錄頁面)

import requests
url = 'http://localhost/test/login.php'
values = {'username': 'admin', 'password': 'wrongpwd'}
r = requests.post(url, data=values)
print(r.content)

如果登錄成功與否,我應該怎么做才能獲得驗證?

所需 Output

Login successful

或者

Login failed

如果我的問題不清楚,或者您需要進一步解釋,請告訴我。

暫無
暫無

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

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