cURL을 사용하여 이 양식을 작성하고 제출할 수 있나요?

cURL을 사용하여 이 양식을 작성하고 제출할 수 있나요?

직장에서 양식에 데이터를 제출하려고 합니다. 나는 그것을 방해하는 페이지의 "기술" 때문에 나의 순진한 접근 방식이 작동하지 않는다고 의심합니다. 기본적으로 웹페이지(죄송하지만 여기에 링크할 수 없습니다. 공개되지 않음)에는

<form action="login.php" method="get" name="LogIn" class="form-signin"> 

그런 다음 다음과 같은 여러 입력이

<input type="text" class="form-control" id="docIdent" name="docIdent" placeholder="@" required>

그래서 다음 cURL 명령을 시도하고 있습니다.

curl -d "docIdent=WHATEVER" -d "type=WHATEVER" -d "comment=" URL

필요한 것으로 보이는 세 가지 데이터 조각은 다음을 통해 얻었습니다. 1. .html을 다운로드합니다. 2. 양식 방법을 "post"에서 "get"으로 변경하고 브라우저에서 엽니다. 3. 양식을 작성하고 제출합니다(물론 "페이지를 찾을 수 없음" 오류가 발생하지만 새 URL에는 빈 세 번째 필드를 포함하여 해당 데이터가 모두 포함되어 있습니다).

글쎄, 그것은 작동하지 않습니다. (동일한 로그인 페이지가 다시 나타나고 시도할 때 로그인이 없었는지 확인할 수 있습니다.) 나는 이러한 것들에 대해 잘 모르지만 페이지에 없는 다른 코드가 있을 수 있다고 생각합니다.

<script src="dist/js/bootstrap.min.js"></script>
<script src="dist/js/jquery-3.4.1.min.js"></script>
<script src='js/fns.js'></script>

물론 양식 열기에 있는 "login.php"도 마찬가지입니다. 다른 많은 게시물에서 내 구문이 올바른 것 같습니다. 자동 로그인에 대한 희망이 있습니까(내가 시도하고 있는 한 줄과 같이 cron에 넣을 bash 스크립트 유형)? 감사해요.

답변1

결국 나는 다음과 같은 해결책을 찾았습니다. 내 브라우저(Firefox, 웹 개발자 도구)를 사용하여 요청을 캡처했습니다. 그것은 다음과 같이 보였습니다:

curl 'URL' -H 'Host: SOMETHING' -H 'User-Agent: SOMETHING' -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' -H 'Accept-Language: en,en-US;q=0.5' --compressed -H 'Referer: SOMETHING' -H 'DNT: 1' -H 'Connection: keep-alive' -H 'Upgrade-Insecure-Requests: 1' --data 'WHATEVER'

... 그리고 매번 변경되지 않는 나머지가 충분한지 확인하고 싶어서 제거한 쿠키 정보도 있습니다. 그리고 그것은 효과가 있었습니다. 유용한 지원을 해주신 Grarity에게 정말 감사드립니다.

답변2

Firefox 웹 도구를 사용하면 모든 HTTP 요청(GET 또는 POST 양식)을 캡처할 수 있습니다.

웹 도구 -> 네트워크 -> 양식 보내기 -> 양식 URL의 컨텍스트 메뉴(양식 스크립트를 마우스 오른쪽 버튼으로 클릭) -> 복사 => cURL 주소로 복사

추가 정보:https://everything.curl.dev/usingcurl/copyas

답변3

게시할 때 다음을 사용해야 한다고 생각합니다.-X 포스트

양식으로 보내려는 데이터 : --데이터 원시 'formField1=값1&formField2=값2'

curl 'http://localhost:8000/' -X POST --data-raw 'fname=John&lname=Smith'

관련 정보