使用cURL登录网站


12

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

curl --data“用户名= user&password = pass&submit =登录” http://www.ip.com:8080/LoginApplication/Login.jsp

然后尝试使用访问内部页面

curl http://www.ip.com:8080/LoginApplication/Success.jsp

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

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


Answers:


15

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

例如:

curl -s loginpage -c cookiefile -d "user=myself&pass=secure"
curl -s secretpage -b cookiefile

编辑

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

针对您的浏览器的篡改插件/扩展名可能会帮助您找到正确的loginpage以及发布到其上的所有数据(例如表单中的隐藏输入字段)。


给定的-s -c -d序列甚至不生成cookie文件
SAR

这是很大的帮助,我再次查看了源代码,发现我的请求要发送到控制器,然后我修改了命令,它对我有用。
SAR

这对于HTTP来说很好用,我还需要对HTTPS做些额外的事情
SAR

@SAR:您的证书有问题。也许您只是想使用-k。请参阅curl --help以获取更多信息,或在Internet上搜索如何处理证书。;-)
Peque 2014年

1
谢谢您的大力帮助...我的卷曲问题是,“注意很多次登录页面不是您使用网络浏览器打开的用于介绍用户名和密码的页面。” ...谢谢!
Sambhav Pandey
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.