9

Tôi đang phát triển tiện ích mở rộng Chrome/Chromium sẽ đọc điểm số trường học từ hệ thống trường học với điểm số. Vấn đề là trang web không nhớ người dùng đã đăng nhập. Bởi vì điều này, tôi không thể sử dụng AJAX.Đăng nhập vào trang web bằng tiện ích mở rộng chrome và nhận dữ liệu từ trang đó

Chỉ khi tôi đăng nhập vào trang đó trên tab khác. Nhưng tôi muốn đăng nhập vào trang đó ở chế độ nền và tự động. Giải pháp có thể là thẻ iframe nhưng Chrome/Chromium không cho phép tôi đọc và thao tác với nội dung khung nội tuyến. Có giải pháp nào để thao tác trong trang như người dùng đã đăng nhập không? Cảm ơn bạn

Trả lời

9

Bạn có thể mô phỏng gửi biểu mẫu thông qua javascript từ trang nền. Trước tiên, bạn cần phải kiểm tra cẩn thận dữ liệu nào được gửi thông qua biểu mẫu đăng nhập và URL nào (biểu mẫu có thể được thay đổi bằng javascript trước khi gửi, vì vậy bạn cần phải biết những gì thực sự được gửi, chứ không phải những gì trong phần tử <form>). Bạn có thể sử dụng bảng điều khiển của Chrome cho những thứ đơn giản, nếu nó không đủ thì có Tamper Data plugin cho Firefox và để kiểm tra lưu lượng truy cập hardcore, bạn có thể sử dụng máy phân tích Wireshark.

Sau đó, trong một trang nền (Tôi đang sử dụng jQuery đây):

$.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 
      } 
     }); 
    } 
}); 

điều tốt là Chrome vẫn còn phiên và cookie, vì vậy nó cũng giống như đăng nhập bằng tay (nếu bây giờ bạn mở trang web của bạn trong trình duyệt bạn nên đăng nhập).

+2

Tôi có thể thấy rằng tôi khá muộn để thảo luận này, nhưng tôi chỉ muốn hỏi liệu có bất kỳ tác động bảo mật nào để gửi dữ liệu đăng nhập theo cách này hay không. –

0

Làm thế nào về việc sử dụng cURL để đăng nhập vô hình người dùng vào hệ thống, sau đó trả lại kết quả từ cuộc gọi JSONP?

+1

Có, đó là ý tưởng hay, nhưng làm cách nào để chạy cURL từ tiện ích mở rộng? –

+0

Thiết lập cuộc gọi AJAX đến tập lệnh phía máy chủ? – BenM

Các vấn đề liên quan