Привет. Использую Qt5.
Пишу
консольную программу парсер сайта
https://www.vseinstrumenti.ru/Использую QNetworkAccessManager.
На сайте стоит защита, при заходе на их страницу они отправляют на сайт прокладку например по адресу
https://ohio8.vchecks.me/share/sWWtMUH7cqM1?sid=2588&scheme=https&host=www.vseinstrumenti.ru&uri=%2f%3futm_referrer%3d&t=1563107574249&sad=v%2fuQ1wLA%3d%3d&uid=s7RKQDx4LDWnaSFq&uct=1563107574249&kct=0&m=2&ver=7&flags=2176&ua=776215760362579538&v=5F5kK4Iq9WBf_xq6ZAsJQQТам идет выполнение JS кода, а именно выполняется JS код который генерирует что-то вроде секрета с которым идет перенаправление назад на сайт https://www.vseinstrumenti.ru/
И таким образом проверка пройдена.
Вопрос №1, почему один и тот же С++ код, скомпилированный на разных ОС, а именно Windows и Linux (Ubuntu)
отдает разный ответ при переходе по выше указанной ссылке.
Разница ответов (Response) в том, что если программа исполняется в Linux то Response НЕ содержит JS функцию отвечающую за генерацию секрета, вместо нее в JS код уже есть готовый результат её генерирования. А вот в Windows наоборот, нет готового секрета, но есть функция которая этот секрет генерирует.
Как такое вообще возможно... код же на с++ один и тот же...Вопрос № 2Как в QT можно выполнить JS код полученный в Response учитывая что программа консольная.
QScriptEngine не помог, видимо JS код для него слишком сложный.
Доп инфоТак выглядит Response для Linux
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="refresh" content="10;URL=/ciez2a">
</head>
<body>
<script type="text/javascript">
var ipp = {
setCookie:function()
{
document.cookie="ipp_key=v1563109400764/v3394bd940fb9f20d860d271638eca2afa04ab3/LBgoFoc1kjRqgOKpylxeJA==; path=/;";
document.cookie="ipp_uid=1563109400764/XmY5i8ip0xP6CnMe/luPzUft7syB0zcwZ45odDg==; expires=Tue, 31 Dec 2030 23:59:59 GMT; path=/;";
document.cookie="ipp_uid1=1563109400764; expires=Tue, 31 Dec 2030 23:59:59 GMT; path=/;";
document.cookie="ipp_uid2=XmY5i8ip0xP6CnMe/luPzUft7syB0zcwZ45odDg==; expires=Tue, 31 Dec 2030 23:59:59 GMT; path=/;";
},
makeUrl:function(url)
{
url += "fa821dba_ipp_key=v1563109400764%2fv3394bd940fb9f20d860d271638eca2afa04ab3%2fLBgoFoc1kjRqgOKpylxeJA%3d%3d" + "&" + "fa821dba_ipp_uid=1563109400764%2fXmY5i8ip0xP6CnMe%2fluPzUft7syB0zcwZ45odDg%3d%3d" + "&" + "fa821dba_ipp_uid1=1563109400764" + "&" + "fa821dba_ipp_uid2=XmY5i8ip0xP6CnMe%2fluPzUft7syB0zcwZ45odDg%3d%3d";
return url;
}
};
location.href=ipp.makeUrl("https://www.vseinstrumenti.ru/search_main.php?what=%D0%90%D0%B4%D0%B0%D0%BF%D1%82%D0%B5%D1%80+1/2%22+%D0%A5+8MM+JTC+/1&utm_referrer=https%3a%2f%2fwww.vseinstrumenti.ru%2f&");
</script>
</body>
</html>
А так выглядит Rsponse для Windows
https://codepen.io/rudireg/pen/GbaQRX