当前位置: 首页 > 面试题库 >

CURL访问需要从其他页面登录的页面

班言
2023-03-14
问题内容

我有2页:xyz.com/axyz.com/b。我只有在先xyz.com/b登录后才能访问xyz.com/a。如果xyz.com/b不经过其他访问,我只是通过浏览器拒绝访问(没有重定向到登录)。在登录后xyz.com/a,我就可以访问另一个。

我的问题是使用curl命令执行此操作。我可以成功xyz.com/a使用curl 登录,但是尝试xyx.com/b访问后会被拒绝。

我使用以下内容:

curl --user user:pass https://xyz.com/a  #works ok
curl https://xyz.com/b #doesn't work

我尝试将第二行与&一起使用,但没有用户/密码部分,但仍然无法正常工作。两个页面都使用相同的CA,所以这不是问题。有什么建议么?谢谢


问题答案:

该网站可能使用cookie来存储您的会话信息。当你跑步

curl --user user:pass https://xyz.com/a  #works ok
curl https://xyz.com/b #doesn't work

curl在两个单独的会话中运行两次。因此,当第二条命令运行时,由第一条命令设置的cookie不可用。就像您a在一个浏览器会话中登录到页面,然后尝试在另一个浏览器会话中访问页面b一样。

您需要做的是 保存 第一个命令创建的cookie:

curl --user user:pass --cookie-jar ./somefile https://xyz.com/a

然后在运行第二个命令时将它们读回:

curl --cookie ./somefile https://xyz.com/b

另外,您可以尝试使用同一命令下载两个文件,我认为它们将使用相同的cookie。



 类似资料:
  • 我创建了一个Spring Boot Web应用程序,成功登录后,我必须将用户发送到OTP页面。 我的问题是:当用户访问OTP页面时,他可以绕过它更改URL,这样他就可以访问任何页面(即存在很大的安全风险),因为用户已经从登录页面进行了身份验证。 如何在OTP页面上恢复URL更改,就像在登录页面上发生的一样(使用Spring boot安全性),这样用户只有通过OTP身份验证才能进入。

  • 问题内容: 我尝试编写一个将用户名和密码传递给servlet并让用户登录的登录表单。 然后,在servlet中, 但会引发无法验证用户身份的异常。 我想知道如何编写一个简单的登录页面。 request.authenticate(response)的用途是什么? 我尝试了一下,它弹出了一个无法继续进行的屏幕。 我尝试引用此页面http://download.oracle.com/javaee/1.4

  • 我正在开发一个应该显示货币汇率的项目,所以我计划调用另一个网页从该页面获得汇率值。我在Angular-js中尝试了,但是我不能从网页中得到响应(在Angular-js中:我们只能调用JSON/REST url)。我在XMLHttpRequest中尝试了,但是如果我们从其他域(CORS的Beacuse)调用网页,它不会调用该网页(url)。 类似地,我在Java中进行了尝试,成功地调用了网页并得到了

  • 问题内容: 我在爬网一个想要爬网的坚定网站时遇到了麻烦。问题是:成功登录该网站后,我无法访问需要有效登录的链接。 例如: 我在这里做的是: 从登录页面获取cookie,以便我可以正确登录; 然后,我发布到登录验证URL,该URL在登录后返回主页。 最终,我尝试在登录主页后尝试访问需要登录的URL,但是该请求使我返回登录页面,就好像会话已过期。 我知道我必须存储cookie才能使会话保持活动状态,但

  • 问题内容: 我想设置我的网站,以便如果用户点击该页面并且他们已经登录,它将把他们重定向到主页。如果未登录,它将正常显示。由于登录代码内置在Django中,我该怎么做? 问题答案: 我假设你当前正在使用内置的登录视图, 或你网址中的类似内容。 你可以编写包含默认视图的登录视图。它将检查用户是否已经登录,如果已经登录则重定向,否则使用默认视图。 就像是: 当然可以相应地更改你的网址:

  • 我试图了解spring-web安全性。为此,我创建了一个具有登录页面和两个不同用户的Web应用程序。 管理员 LoginController类处理三种类型的URL。 网状物xml 在Spring安全中,我使用“admin/”限制所有网址 在提供管理员用户名和密码后,应用程序将打开管理员页面。 现在,当我单击“ManageUser”时,我希望应用程序将我带到ManageUser页面。但上面写着“拒绝