2014-10-06 14 views
5

Tôi đang thử một biến thể nhỏ của luồng phía máy chủ đăng nhập web Google+ như được mô tả trên Google Developer's website.Tôi có thể sử dụng https để phát triển địa phương không?

đang GAPI của Google được đưa ra thông báo lỗi này:

Uncaught SecurityError: Blocked a frame with origin " http://my-development-system.dev " from accessing a frame with origin " https://accounts.google.com ". The frame requesting access has a protocol of "http", the frame being accessed has a protocol of "https". Protocols must match.

Tôi đúng khi nói rằng hệ thống phát triển địa phương của tôi không thể được thiết lập để sử dụng giao thức https?

+2

Lỗi nói rằng bạn * không * sử dụng HTTPS. Bạn có nghĩa là bạn không muốn trả tiền cho một chứng chỉ tin cậy? Bạn có tìm thấy vấn đề với chứng chỉ tự ký không? –

+0

Tôi sử dụng nó với apache nhưng phải tạo chứng chỉ của riêng mình – Quince

+2

Nhưng đọc lỗi cho tôi biết bạn không sử dụng https chút nào. generare certs của bạn, cấu hình apache để sử dụng ssl và thử lại. –

Trả lời

0

tôi đã sai khi nói rằng

my local development system cannot be set up to use the https protocol

Nó có thể! Đơn giản bằng cách sử dụng SSL chứng nhận tự.

1

Điều này không chỉ làm với một giao thức khác nhau (HTTP trên trang web của bạn vs HTTPS trên accounts.google.com), nó cũng là vì miền không phù hợp (và cổng cho rằng vấn đề), một hạn chế áp đặt bởi Same Origin Policy.

Chính sách này dừng www.evil.com từ tải trang web chẳng hạn như www.bank.com bên trong khung hình (hoặc cửa sổ bật lên nếu khung bị tắt) và sau đó truy cập DOM. Nếu DOM có thể được truy cập, đây sẽ là một rủi ro bảo mật lớn vì bất kỳ trang web nào cũng có thể đọc dữ liệu cá nhân của bạn trên một trang web khác.

Có thể cho phép truy cập bằng cách thực thi chính sách một bên và xuất ra phía máy chủ để cho phép các miền được chỉ định khác đọc nội dung, tuy nhiên điều này sẽ nằm ở phía Google trong trường hợp của bạn. Vì vậy, trừ khi https://accounts.google.com triển khai chính sách CORS, bạn sẽ không thể tạo biến thể phía máy khách của luồng phía máy chủ. Một rào cản khác là ngay cả khi CORS được triển khai, nó không cho phép truy cập vào DOM. Tuy nhiên, bạn có thể truy xuất nội dung từ một miền, giao thức hoặc cổng khác thông qua các cuộc gọi AJAX. Trang đích cũng sẽ phải xuất ra tiêu đề Access-Control-Allow-Credentials: true để thông tin đăng nhập xác thực (ví dụ: cookie trong trường hợp này) được gửi cùng với yêu cầu và phản hồi được đọc bởi miền của bạn.

Can I use https for local development?

Để trả lời câu hỏi ban đầu của bạn, câu trả lời là có. Đây có thể là chứng chỉ tự ký cho hầu hết các mục đích và nó sẽ không ảnh hưởng đến thông báo lỗi cụ thể này trong trình duyệt của bạn (như bạn, khi người dùng trình duyệt đã chọn chấp nhận và tin tưởng chứng chỉ).

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