使用 cURL 登录网站

SAR*_*SAR 16 curl

我正在尝试使用以下命令从 cURL 命令行登录

curl --data "username=user&password=pass&submit=Login" http://www.ip.com:8080/LoginApplication/Login.jsp

然后尝试使用访问内页

curl http://www.ip.com:8080/LoginApplication/Success.jsp
Run Code Online (Sandbox Code Playgroud)

但是由于未登录,我被重定向到错误页面。

我在第一个命令中缺少什么以便它可以维持会话?我在本地托管了我的网站

Peq*_*que 22

好吧,您需要将会话数据存储在 cookie 中。您可以使用它-c cookie_filename来创建 cookie(将此添加到您的登录命令中)。然后,对于其他请求,您可以从 cookie 中读取-b cookie_filename.

例如:

curl -s loginpage -c cookiefile -d "user=myself&pass=secure"
curl -s secretpage -b cookiefile
Run Code Online (Sandbox Code Playgroud)

编辑

请注意,很多时候loginpage并不是您使用 Web 浏览器打开的页面是您介绍用户和密码的页面。您必须检查表单将数据发布到的位置(<form>在源代码和action=...属性中搜索标签)。因此,例如,如果您想登录https://criticker.comloginpage则是https://www.criticker.com/authenticate.php而不是https://www.criticker.com/signin.php,这是您使用浏览器打开的那个。

浏览器的篡改插件/扩展程序可以帮助您找到正确的loginpage和所有发布到它的数据(如表单中的隐藏输入字段)。

  • 谢谢你的大力帮助...我的 curl 的问题是,“请注意,登录页面很多次不是您使用 Web 浏览器打开的页面,您在其中介绍您的用户和密码。”...谢谢! (2认同)