2012-02-22 29 views
9

Chuyển hướng tiêu đề an toàn như thế nào? Như tôi đã hiểu, thông tin tiêu đề hướng dẫn trình duyệt phải làm gì. Do đó, nếu vị trí tiêu đề được đặt ở một số vị trí khác, trình duyệt vẫn có thể được thực hiện để truy cập trang đầu tiên không?Chuyển hướng tiêu đề an toàn như thế nào? Nó có thể bị bỏ qua không?

if(!$loggedin){ 
header('Location: someotherpage.php') 
} 

Nếu một ai đó, (ho ho) quên sử dụng một lệnh exit sau tiêu đề, có thể ai đó vẫn hạ cánh trên trang đó?

+4

Bạn có thể tìm https://addons.mozilla.org/en-US/firefox/addon/noredirect/ một addon hữu ích cho firefox. Điều này sẽ cho phép bạn xem những gì thực sự đang được gửi đi. Tôi đã thấy các trang web (mà tôi có quyền kiểm tra) cho phép toàn bộ giao diện quản trị có thể được sử dụng ẩn danh, bởi vì chúng chuyển hướng mà không cần thoát ra trang đăng nhập. – Cheekysoft

+0

Cảm ơn bạn Cheekysoft. Đó là chính xác những gì tôi đang tìm kiếm. –

Trả lời

8

Nếu ai đó, (ho ho) quên sử dụng lệnh thoát sau tiêu đề, ai đó vẫn có thể truy cập trang đó?

Chắc chắn - chứ không phải là đất trên trang đó (mà ông đã có), quên một exit() nghĩa là khách hàng vẫn có thể thấy bất kỳ dữ liệu phát ra sau khi những dòng. Không ai có thể buộc khách hàng rời khỏi ngay lập tức sau khi nhận được tiêu đề Location:. Hành động đó hoàn toàn tự nguyện.

0

Có, chắc chắn. Đó là lý do tại sao một người khác nên làm theo (hoặc một lối ra) sau khi chuyển hướng trong trường hợp bạn muốn tránh hiển thị thông tin bất hợp pháp. Nếu một người sử dụng một yêu cầu tùy chỉnh, họ có thể dễ dàng xem những gì sau một yêu cầu chuyển hướng, đó là một vấn đề bảo mật khá chuẩn.

0

Có. Nó sẽ có thể vẫn còn đất trên trang đó, bạn không thể ép buộc 'Vị trí'. Cũng có thể "vô tình" tải phần còn lại của trang nếu trang đó phát ra lỗi "tiêu đề đã gửi". Thực hành tốt là sử dụng exit; sau khi gửi header('Location...').

Xem PHP chức năng: headers_sent

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