2009-07-07 63 views
7

Một phần trang web của chúng tôi được bảo vệ bằng mật khẩu bảo vệ kiểu .htaccess. Khi bạn cố gắng truy cập khu vực này của trang web, trình duyệt web bật lên một hộp thoại yêu cầu tên người dùng và mật khẩu của bạn.Làm thế nào để truy cập một cách có lập trình một trang web được bảo vệ bằng mật khẩu?

Tôi cần truy cập chương trình này (ví dụ: bằng cuộc gọi ajax). Làm thế nào để máy chủ cho tôi biết nó cần một mật khẩu và làm thế nào để tôi cung cấp nó?

Trả lời

3

Nói chung, http://user:[email protected]

Nhưng có một số thiếu sót an ninh rõ ràng với điều đó.

Một giải pháp hoàn chỉnh hơn có thể là đặt biến phiên sau khi người dùng được xác thực.

Tạo bài đăng AJAX thành tập lệnh kiểm tra xác thực. Nếu được xác thực, hãy sử dụng CURL để tìm nạp kết quả bằng tài khoản được xác định trước.

Điều này cho phép bạn sử dụng lại xác thực cơ bản apache nhưng ngăn không cho bất kỳ mật khẩu nào được ghi trong DOM.

+0

Trang web được đề cập là https, mà tôi cho rằng sẽ làm giảm các vấn đề bảo mật. URL có được chuyển đến máy chủ được mã hóa trong phiên https không - tôi giả sử nó là ...? –

+1

vẫn tốt hơn httpS: // user: [email protected] – KevinDTimm

+0

URL phải an toàn, nhưng bạn vẫn đang viết quyền người dùng/quyền truy cập trong trang web thuần túy như một phần của href. Ngay cả khi u/p không thể bị bắn tỉa khi vận chuyển, vẫn còn một số vấn đề ở đó. – rooskie

2

này là tất nhiên không Ajax, nhưng với wget khách hàng mà bạn có thể sử dụng --http người dùng và mật khẩu --http-cờ

4

jQuery hỗ trợ xác thực HTTP với() phương pháp ajax của họ. Một cái gì đó như thế này nên làm việc:

jQuery.ajax({ 
    type: "GET", 
    url: "foo.php", 
    username: "foo", 
    password: "bar" 
}); 

Tài liệu trên tất cả các tùy chọn jQuery.ajax() có thể được tìm thấy ở đây: http://docs.jquery.com/Ajax/jQuery.ajax#options

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