9

성적이있는 학교 시스템에서 학교 성적을 읽는 Chrome/Chromium 확장 프로그램을 개발 중입니다. 문제는 사이트가 로그인 한 사용자를 기억하지 못한다는 것입니다. 이 때문에 AJAX를 사용할 수 없습니다.크롬 확장 기능이있는 웹 사이트에 로그인하여 데이터를 가져옵니다.

내가 다른 탭의 해당 페이지에 기록 된 경우에만. 하지만 백그라운드에서 자동으로 해당 페이지에 로그인하고 싶습니다. 해결책은 iframe 태그 일 수 있지만 Chrome/Chromium에서는 iframe 콘텐츠를 읽고 조작 할 수 없습니다. 로그인 한 사용자로 페이지에서 조작하는 방법이 있습니까? 감사합니다

답변

9

배경 페이지에서 자바 스크립트를 통한 양식 제출을 에뮬레이트 할 수 있습니다. 먼저 로그인 양식을 통해 전송되는 데이터와 URL (양식은 <form> 요소에있는 것뿐만 아니라 실제로 전송되는 것을 알아야하기 때문에 보내기 전에 javascript로 변경할 수 있음)을주의 깊게 검사해야합니다. Chrome의 콘솔을 간단한 도구로 사용할 수 있습니다. Firefox가 충분하지 않은 경우 Firefox의 경우 Tamper Data plugin이고 하드 코어 트래픽 검사의 경우 Wireshark 분석기를 사용할 수 있습니다.

$.ajax({ 
    url: "https://login_form.html", 
    type: "GET", 
    dataType: "html", 
    success: function() { 
     $.ajax({ 
      url: "https://login_form_submits_to.html", 
      type: "POST", 
      data: { 
        "username": "username", 
        "password": "password", 
        "extra_field": "value" 
      }, 
      dataType: "html", 
      success: function(data) { 
        //now you can parse your report screen 
      } 
     }); 
    } 
}); 

좋은 것은 크롬이 세션 쿠키를 지속한다는 것입니다, 그래서 당신은 이제 당신의 사이트를 열 경우 (수동 로그인 같다 : 다음

는 배경 페이지에 (내가 여기 jQuery를 사용하고 있습니다) 브라우저에 로그인해야합니다).

+2

나는이 토론에 상당히 늦었다는 것을 알았지 만, 이런 식으로 로그인 데이터를 전송할 때 보안상의 영향이 있는지 묻기를 원했습니다. –

0

cURL을 사용하여 보이지 않게 사용자를 시스템에 로그인 한 다음 JSONP 호출의 결과를 반환하는 방법은 어떻습니까?

+1

예, 좋습니다.하지만 확장 프로그램에서 cURL을 어떻게 실행할 수 있습니까? –

+0

서버 측 스크립트에 AJAX 호출을 설정 하시겠습니까? – BenM

관련 문제