LINUX에서 내부적으로 호스팅된 웹 페이지를 열고 사용자 입력 없이 로그인하는 방법은 무엇입니까?

LINUX에서 내부적으로 호스팅된 웹 페이지를 열고 사용자 입력 없이 로그인하는 방법은 무엇입니까?

시작하는 동안 Chromium의 키오스크에서 웹페이지를 계속 열기 위해 현재 코드 줄에 추가하려고 합니다. 아래 코드로 이를 관리했지만 사용자 이름과 비밀번호를 자동으로 입력하려고 합니다. 을 누른 후 로그인 버튼을 눌러 다음 웹페이지로 들어갑니다. 이것이 내가 지금까지 /home/pi/kiosk.sh에 저장한 것입니다.

#!빈/배시
xset의 노블랭크
출발하다
xset-dpms

깔끔한 유휴 0 -루트 &

크롬 브라우저 --noerrdiaglogs --disable-infobars --kiosk https://192.168.0.1/webconsole

그런 다음 시작 시 실행되도록 SystemD에 활성화된 다른 코드 세트를 저장합니다. 위치:/lib/systemd/system/kiosk.service:

[단위]
설명=크롬 키오스크
원하는=graph.goal
이후 = 그래프.대상

[제공하다]
환경=디스플레이=:0.0
환경=XAUTHORITY=/home/pi/.Xauthority
유형=단순
ExecStart=/bin/bash /home/pi/kiosk.sh
다시 시작할 때 = 중단
사용자=pi
그룹=파이

[설치하다]
WantedBy=graphical.target

이것은 모두 훌륭하지만 유일한 문제는 이 페이지에 대한 로그인 세부 정보가 자동으로 열리도록 무언가를 추가하려고 한다는 것입니다. 어떤 제안이 있으십니까? cURL을 조사해 보았으나 잘 모르겠습니다. 가끔 SSL 오류가 발생하는데, 내부 웹페이지에 보안 인증서가 없기 때문인 것 같습니다. 시간을 내어 이 글을 읽어주신 모든 분들께 감사드립니다.

답변1

이는 사용자 상호작용을 처리하는 사용자 에이전트 이외의 다른 사용자 에이전트로는 수행하기 어렵습니다. 인증을 수행하는 사용자 에이전트에서 쿠키를 추출하여 Chromium에 삽입하는 문제에 직면하게 됩니다.

두 가지 가능한 해결책을 볼 수 있습니다.

  1. 사용크롬 드라이버처음에는 스크립트를 통해 브라우저를 제어하고 DOM을 통해 자격 증명을 삽입합니다.

  2. 프록시를 사용하고 MITM 프록시 연결을 통해 세션을 설정하도록 브라우저를 구성합니다.

그러나 브라우저에서 클라이언트 인증서를 구성하고 클라이언트 인증서를 사용하여 인증을 수락하도록 애플리케이션을 다시 작성하는 것이 더 쉬울 수도 있습니다.

답변2

그래서 마침내 성공할 수 있었습니다. xdotool 입력 스크립트를 사용하여 비밀번호로 "Chromium-browser"를 실행했지만 &를 사용하여 실행하고 xdotool을 다른 스크립트로 옮겼으므로 이제 작동합니다.

크롬 브라우저 --noerrdiaglogs --disable-infobars --kiosk https://192.168.0.1/webconsole & /bin/bash /home/pi/test.sh

Test.sh에는 다음이 포함됩니다.

#!빈/배시

xdotool 검색 --onlyvisible --class "chromium" 창 포커스 키 탭
xdotool 키 탭
xdotool 비밀번호 입력
xdotool 키 반환
수면 9999999시간

스크립트가 완료되면 기본적으로 전체 작업이 종료되기 때문에 sleep 명령이 추가되었습니다. 조언과 시간을 내주신 모든 분들께 감사드립니다! :)

관련 정보