Đặt cookie thành HttpOnly qua Javascript


87

Tôi có một cookie KHÔNG PHẢI HttpOnlyTôi có thể đặt cookie này thành HttpOnlyqua JavaScript không?


1
Làm cách nào để có thể thiết lập một cookie bằng JavaScript mà bản thân JavaScript không được cho là có thể thao tác? Chỉ cần đặt nó ở phía máy chủ.
BalusC

1
Cookie KHÔNG phải là HttpOnly và tôi muốn đặt nó thành HttpOnly thông qua Javascript.

5
Tôi nghĩ bạn bỏ lỡ quan điểm của HttpOnly.
BalusC

Câu hỏi tuyệt vời. Thực sự không có bất kỳ nhược điểm nào khi đặt cookie HttpOnly từ ứng dụng khách về mặt bảo mật. Vì vậy, bạn nghĩ rằng nó sẽ được cho phép. Nhưng tất nhiên không phải vậy.
PHP Guru

Câu trả lời:


171

Một HttpOnlyphương tiện cookie mà nó không có sẵn cho ngôn ngữ kịch bản như JavaScript. Vì vậy, trong JavaScript, hoàn toàn không có API nào có sẵn để lấy / đặt HttpOnlythuộc tính của cookie, vì nếu không điều đó sẽ đánh bại ý nghĩa của HttpOnly.

Chỉ cần đặt nó như vậy ở phía máy chủ bằng bất kỳ ngôn ngữ phía máy chủ nào mà phía máy chủ đang sử dụng. Nếu JavaScript thực sự cần thiết cho việc này, bạn có thể cân nhắc chỉ để nó gửi một số yêu cầu (ajax) với ví dụ: một số thông số yêu cầu cụ thể kích hoạt ngôn ngữ phía máy chủ để tạo cookie HttpOnly. Tuy nhiên, điều đó vẫn khiến tin tặc dễ dàng thay đổi HttpOnlychỉ bằng XSS và vẫn có quyền truy cập vào cookie thông qua JS và do đó làm cho HttpOnlycookie trên của bạn hoàn toàn vô dụng.


4
Tôi tự hỏi làm cách nào mà một ứng dụng phía máy khách như tiện ích mở rộng trình duyệt "EditThisCookie" có thể thay đổi cờ HttpOnly thành false.
pavanw3b

1
@ PavanW3b: Nó không sử dụng ngôn ngữ kịch bản phía máy khách như JavaScript cho điều đó. Nó chỉ là một tiện ích mở rộng của trình duyệt.
BalusC

10
@BalusC Các tiện ích mở rộng của trình duyệt được viết bằng JS và đã được developer.chrome.com/extensions một thời gian "Bạn viết chúng bằng công nghệ web như HTML, JavaScript và CSS." developer.mozilla.org/en-US/Add-ons/WebExtensions/… "Chúng được viết bằng công nghệ Web tiêu chuẩn - JavaScript, HTML và CSS - cộng với một số API JavaScript chuyên dụng." Và ví dụ về mã nguồn mở được viết vào năm 2013 github.com/Asana/Chrome-Extension-Example
Justin Hamade

53
Tôi không thực sự thấy làm thế nào có thể đặt HttpOnly từ JS sẽ "đánh bại ý nghĩa của HttpOnly", miễn là cookie vẫn không thể đọc được từ tập lệnh ...
hallo

4
MDN nói rằng nó bị cấm. developer.mozilla.org/en-US/docs/Web/HTTP/…
mpoisot
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.