Automatyczne logowanie na stronę - problem.

0

Napisałem głównie z użyciem klasy QNetworkAccessManager program, którego zadaniem było automatyczne zalogowanie się na stronę i wyświetlenie jej zawartości tuż po zalogowaniu. Jednak strona po wykonanym ostatnim zapytaniu wygląda tak: https://scontent-ams3-1.xx.fbcdn.net/v/t34.0-12/18834360_427799180911167_680449094_n.png?oh=1b713624619e600a4ccf85d672a2ae55&oe=59333EB6

Tak wyglądają potrzebne zapytania robione przez przeglądarkę: https://scontent-ams3-1.xx.fbcdn.net/v/t35.0-12/18818240_427799510911134_976569146_o.png?oh=c2acfa4b078950eebc805d46174c9736&oe=5932F163
https://scontent-ams3-1.xx.fbcdn.net/v/t35.0-12/18870396_427799550911130_1061283697_o.png?oh=6624081a868fca03697bd14c684e5eed&oe=593340B0
Co zrobić, aby logowanie przebiegło prawidłowo?

#include "mainwindow.h"
#include "ui_mainwindow.h"
 
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    jar=new QNetworkCookieJar();
    manager.setCookieJar(jar);
    ui->setupUi(this);
}
 
MainWindow::~MainWindow()
{
    delete ui;
    delete jar;
}
 
void MainWindow::End()
{
    ui->textBrowser->setText(reply->readAll());
}
void MainWindow::EndGet()
{
    ui->textBrowser->setText(reply->readAll());//Tymczasowo
    QByteArray PostData="action=zaloguj&lista=zaloguj_sie&username=[login]&password=[haslo]&remember=yes&zaloguj=Zaloguj+si%EA";
    request.setUrl(QUrl("https://www.wiocha.pl/zaloguj_sie"));
    request.setRawHeader(QByteArray("Content-Type"), QByteArray("application/x-www-form-urlencoded"));
    request.setRawHeader(QByteArray("Content-Length"), QByteArray("103"));
    request.setRawHeader(QByteArray("Refer"), QByteArray("https://www.wiocha.pl/zaloguj_sie"));
    request.setRawHeader(QByteArray("Accept-Encoding"), QByteArray("gzip, deflate, br"));
    reply=manager.post(request, PostData);
    connect(reply, SIGNAL(finished()), this, SLOT(End()));
}
 
void MainWindow::on_pushButton_clicked()
{
    request.setUrl(QUrl("http://www.wiocha.pl/"));
    request.setRawHeader(QByteArray("Host"), QByteArray("www.wiocha.pl"));
    request.setRawHeader(QByteArray("User-Agent"), QByteArray("Mozilla/5.0 (Windows NT 6.1; WOW64; rv:53.0) Gecko/20100101 Firefox/53."));
    request.setRawHeader(QByteArray("Accept"), QByteArray("text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"));
    request.setRawHeader(QByteArray("Accept-Language"), QByteArray("pl,en-US;q=0.7,en;q=0.3"));
    request.setRawHeader(QByteArray("Accept-Encoding"), QByteArray("gzip, deflate"));
    request.setRawHeader(QByteArray("Connection"), QByteArray("keep-alive"));
    request.setRawHeader(QByteArray("Upgrade-Insecure-Requests"), QByteArray("1"));
    reply=manager.get(request);
    connect(reply, SIGNAL(finished()), this, SLOT(EndGet()));
}
0
  1. Sprawdź czy dozwolone jest logowanie na wiochę bez https. Zastosuj warstwę SSL.
  2. Sprawdź komunikację wewnątrz węzła SSL - w czasie komunikacji, za pomocą przeglądarki. Do tego możesz wykorzystać kilka narzędzi lub sposobów, jak dla mnie proste w obsłudze są sslsniff oraz sslstrip.

1 użytkowników online, w tym zalogowanych: 0, gości: 1