Модуль запросов Python для проверки успешного входа в систему HTTP или нет - PullRequest
0 голосов
/ 05 октября 2019

Я пытался реализовать подобную вещь здесь и здесь .

В основном я просто хочу войти на сайт и получить подтверждение, если 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)

Что я должен сделать, чтобы получить подтверждение, если вход успешный или нет?

Желаемый вывод

Login successful

или

Login failed

Если мой вопрос не был ясен или вам нужны дополнительные объяснения, пожалуйста, дайте мне знать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...