我正在嘗試使用以下命令從 cURL 命令列登入
curl --data "使用者名稱=使用者&密碼=密碼&提交=登入"http://www.ip.com:8080/LoginApplication/Login.jsp
之後嘗試使用訪問內頁
curl http://www.ip.com:8080/LoginApplication/Success.jsp
但由於未登錄,我被重定向到錯誤頁面。
我在第一個命令中缺少什麼以便它可以維持會話?我的網站在本地託管
答案1
那麼,您需要將會話資料儲存在 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
您使用網頁瀏覽器開啟的頁面並不是在其中輸入使用者名稱和密碼的。您必須檢查表單將該資料發佈到的位置(<form>
在原始程式碼和action=...
屬性中搜尋標籤)。因此,舉例來說,如果您想登錄https://criticker.com,loginpage
是https://www.criticker.com/authenticate.php並不是https://www.criticker.com/signin.php,這是您用瀏覽器開啟的。
loginpage
瀏覽器的篡改外掛程式/擴充功能可能會幫助您找到發佈到瀏覽器的正確資料和所有資料(例如表單中的隱藏輸入欄位)。