2013-07-02 3 views
0

누군가 내 명령이 작동하지 않는 이유를 말해 줄 수 있습니까? 여기 wget이 쿠키를 설정하지 않았습니다.

내 형태 :

<form id="query" method="POST" action="https://weblogin.mycompany.com/" 
enctype="application/x-www-form-urlencoded" autocomplete="off"> 
<table border="0" align="center"> 
<tr> 
<td class="fieldname">Username:</td> 
<td><input type="text" name="user" size="20" value="" class="inputfield" /> </td> 
</tr> 
<tr> 
<td class="fieldname">Password:</td> 
<td><input type="password" name="pass" class="inputfield" /></td> 
</tr> 
<tr> 
<td class="fieldname"></td> 
<td><input type="submit" value="Log in &raquo;" /></td> 
</tr> 
</table> 
<div id='notifyuser'></div> 
</form> 

그리고 여기 내 wget을 명령입니다

퍼센트의 wget을 --save-쿠키 /tmp/cookies.txt - 포스트 데이터 '사용자 = MY_ID & pass = my_passwd '\ https://weblogin.mycompany.com/

위의 wget 명령을 실행하면 쿠키 파일이 비어 있습니다.

% cat /tmp/cookies.txt 
# HTTP cookie file. 
# Generated by Wget on 2013-07-02 16:23:39. 
# Edit at your own risk. 

그리고 HTTP 응답 :

내가 잘못 했습니까 무엇
% wget --keep-session-cookies --save-cookies /tmp/wget03_cookies.txt --post-data 'user=my_id&pass=my_passwd' **https://weblogin.mycompany.com/** 
--2013-07-03 09:52:06-- https://weblogin.mycompany.com/ 
Resolving weblogin.mycompany.com... 1.1.1.1 
Connecting to weblogin.mycompany.com|1.1.1.1|:443... connected. 
HTTP request sent, awaiting response... 200 OK 
Length: 4477 (4.4K) [text/html] 
Saving to: `index.html.10' 

100%[===========================================================================>] 4,477  --.-K/s in 0s 

2013-07-03 09:52:06 (36.8 MB/s) - `index.html.10' saved [4477/4477] 

?


나는이 스레드에서 해결책을 찾을 수 있습니다 wget with authentication

이 솔루션은 다음과 같이이다 :

#!/bin/sh 

# get the login page to get the hidden field data 
wget -a log.txt -O loginpage.html http://foobar/default.aspx 
hiddendata=`grep value < loginpage.html | grep foobarhidden | tr '=' ' ' | awk '{print $9}' | sed s/\"//g` 
rm loginpage.html 

# login into the page and save the cookies 
postData=user=fakeuser'&'pw=password'&'foobarhidden=${hiddendata} 
wget -a log.txt -O /dev/null --post-data ${postData} --keep-session-cookies --save-cookies cookies.txt http://foobar/default.aspx 

# get the page your after 
wget -a log.txt -O results.html --load-cookies cookies.txt http://foobar/lister.aspx?id=42 
rm cookies.txt 

는 내가 이해하지 못하는 것은 - 내가 사용하기로하고 무엇 hiddendata를 생성하는 동안 'foobarhidden'을 대체 하시겠습니까?

나는 다음 부분이 나에게 답을 주어야한다고 생각한다. 하지만 정확히 무엇을 해야할지 모르겠다.

% grep value < loginpage.html | grep hidden 
3:109:<input type=hidden name=pubcookie_g_req value="b25lPWFsb2hhLmFrYW1haS5jb20mdHdvPWFsb2hhJnRocmVlPTEmZm91cj1hNWEmZml2ZT1HRVQmc2l4PWFsb2hhLmFrYW1haS5jb20mc2V2ZW49THc9PSZlaWdodD0mYWthX2ZyYWc9Jmhvc3RuYW1lPWFsb2hhLmFrYW1haS5jb20mbmluZT0xJmZpbGU9JnJlZmVyZXI9KG51bGwpJnNlc3NfcmU9MCZwcmVfc2Vzc190b2s9NjMzMzQ0OTI3JmZsYWc9MA=="> 
4:110:<input type=hidden name=post_stuff value=""> 
5:111:<input type=hidden name=relay_url value="https://weblogin.mycompany.com/PubCookie.reply"> 

감사합니다.

+1

서버에서 다시 HTTP 응답에 들어온 내용은 ​​무엇입니까? 아마도 오류가 반환되었을 수 있습니까? – RichieHindle

+0

BTW, 내 wget의 버전은 1.12입니다. –

+0

감사합니다. @ 리치 히어 런스 여기에 입력하기에는 너무 길기 때문에 '응답'영역에 응답을 게시합니다. 다시 한번 감사드립니다. –

답변

0

귀하의 질문에 당신은 https://...에 연결하고 있지만 귀하의 로그에는 http://...입니다 - 아마도 그게 문제입니까? 명령 행에서 https://...을 사용하고 있는지 확인하십시오.

+0

그것을 지적 해 주셔서 감사합니다, @ 리치 하인드! https로 다시 시도했는데 그 결과는 같습니다. 다시 메시지가 응답 영역에 게시됩니다. 또한 'weblogin.mycompany.com'페이지에는 많은 자바 스크립트 코드가 있습니다. 이것이 wget 작동을 멈추게할까요? 다시 한 번 감사드립니다! –

+0

@CharlieYen : 답변으로 게시하는 대신 질문에 새 정보를 편집해야합니다. – RichieHindle

+0

@ RichieHindle라고 말해 주셔서 감사합니다. 이 포럼에 아직 새로운 점이 있습니다. 규칙을 지키지 않아서 유감입니다. 응답 영역에서 새 정보를 삭제하고 원래 게시물을 업데이트하겠습니다. 다시 한번 감사드립니다. –

관련 문제