2011-07-05 26 views
18

Tôi đang cố gắng phát hiện xem trang hiện có đang được phân phối qua SSL để quyết định có bao gồm một số tài nguyên bên ngoài không an toàn nhất định không. Phương pháp hiện tại của tôi liên quan đến việc kiểm tra nếu request.url bắt đầu bằng 'https'. Đây có phải là cách đơn giản nhất để hoàn thành việc này không? Có cách nào tốt hơn? Cảm ơn!Xác định xem trang hiện tại có đang sử dụng SSL trong Rails

Trả lời

34

Trong một bộ điều khiển hoặc xem:

request.ssl? 
+1

Cũng làm việc trong quan điểm (ví dụ, để hiển thị một huy hiệu SSL cho https yêu cầu) –

+0

Thật sự tôi nghĩ rằng kiểm tra xem giao thức có 'https' sẽ là rất nhiều an toàn hơn thế này. Tiêu đề có thể được xử lý khi chuyển tiếp. Tất cả các bạn đang kiểm tra với request.ssl? là @env ['HTTPS'] == 'trên' || @env ['HTTP_X_FORWARDED_PROTO'] == 'https' Trong khi đó, đường dẫn đầy đủ, là yêu cầu và có giao thức, không thể bị giả mạo. http://apidock.com/rails/ActionController/Request/ssl%3F – saneshark

+1

Tôi đã sai, toàn bộ tiêu đề được mã hóa và không thể bị giả mạo khi chuyển tiếp. – saneshark

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