我有可以通过浏览器访问的文本,但不能通过脚本访问。我需要将这些文件之一的内容作为变量传递,以便稍后在我的脚本中使用。
安装软件不是一种选择 - 我必须使用 Windows 10 附带的工具来完成此操作。
我研究了 Chrome 的打印到 PDF 功能,但这不适用于身份验证,至少在这种情况下是这样。它给了我登录 url 的打印 pdf,即使 chrome 成功到达了我需要它去的页面(只要我已经通过浏览器登录到该服务)。
显然,Powershell 可以使用一种叫做 wscript 的东西来发送击键、突出显示窗口、复制所有内容并将其转储到文本文件中。不过,我不知道从哪里开始。
我尝试使用邮递员构建一个查询,让我可以访问该页面。然而,这会返回“防伪验证失败”,尽管凭据是正确的。
使用 postman 时,我注意到当登录页面打开时(在我登录之前)会下载一个 cookie。我检查了 Firefox 中的开发人员工具,登录页面提供了这个名为“__H2RequestVerification”的 cookie。当发出登录请求时,浏览器会发送用户名、密码和这个 cookie(这是一长串随机的字母和数字)。
我尝试在邮递员中手动执行此操作,但是当我到达提供凭据的部分时,我总是会收到 “连接重置”错误,即使在 cookie 中提供令牌时也是如此。
来自 Postman 的原始请求,采用 curl 格式(这不起作用):
curl --location 'https://data-demo.heat.ac.uk/account/login?ReturnUrl=%2F' \
--header 'Host: data-demo.heat.ac.uk' \
--header 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/111.0' \
--header 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8' \
--header 'Accept-Language: en-GB,en;q=0.5' \
--header 'Accept-Encoding: gzip, deflate, br' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Content-Length: 182' \
--header 'Origin: https://data-demo.heat.ac.uk' \
--header 'DNT: 1' \
--header 'Connection: keep-alive' \
--header 'Referer: https://data-demo.heat.ac.uk/account/login?ReturnUrl=%2F' \
--header 'Cookie: __H2RequestVerification=Wj3e8tH-8ikvaghOBS0k5x0Vd9X74CRhVRw5Ch9BgNwLIkfGYNI0Do9stFyI0B0yVoq6BQIeJZTGqApRs8Tb3tx0sMg1' \
--header 'Upgrade-Insecure-Requests: 1' \
--header 'Sec-Fetch-Dest: document' \
--header 'Sec-Fetch-Mode: navigate' \
--header 'Sec-Fetch-Site: same-origin' \
--header 'Sec-Fetch-User: ?1' \
--header 'Sec-GPC: 1' \
--header 'TE: trailers' \
--form '__RequestVerificationToken="JtyADE1k-gov_-IYAGMh4urwLI0GK32wlltEZUPetV2TPSMpLE1vY7L8qBkn-Z9sWfcQl9vZfWukq04C55Oj9cFBRkU1"' \
--form 'EmailOrUsername="abc@123"' \
--form '.xxx="aPassWord"'
我不知道如何只从 Firefox 复制原始 HTTP 请求,但我认为一定有办法。需要明确的是,这是有效的方式。
这里是标题:
Host: data-demo.xxx.ac.uk
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/111.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: en-GB,en;q=0.5
Accept-Encoding: gzip, deflate, br
Content-Type: application/x-www-form-urlencoded
Content-Length: 182
Origin: https://data-demo.xxx.ac.uk
DNT: 1
Connection: keep-alive
Referer: https://data-demo.xxx.ac.uk/account/login
Cookie: __H2RequestVerification=Wj3e8tH-8ikvaghOBS0k5x0Vd9X74CRhVRw5Ch9BgNwLIkfGYNI0Do9stFyI0B0yVoq6BQIeJZTGqApRs8Tb3tx0sMg1
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: same-origin
Sec-Fetch-User: ?1
Sec-GPC: 1
TE: trailers
这是表单数据:
__RequestVerificationToken "u9tHCizsNnw0iZ4olHk5gt7gAqMCDEDrcQvZWM08TdT-U10NRfuEU2B8leZ4TU5Eq8UzE8YsfEemwvr8xCcHnVFJKnU1"
EmailOrUsername "123@abc"
Password "aPassWord"
还有饼干:
__H2RequestVerification "Wj3e8tH-8ikvaghOBS0k5x0Vd9X74CRhVRw5Ch9BgNwLIkfGYNI0Do9stFyI0B0yVoq6BQIeJZTGqApRs8Tb3tx0sMg1"