1. Cookie là gì?
Cookie là một phần thông tin nhỏ do máy chủ gửi đến trình duyệt Web của máy khách. Các cookie được lưu trữ trên máy của khách hàng và được máy chủ đọc lại khi nhận được yêu cầu cho cùng một trang.
Cookie chứa một hoặc nhiều cặp tên-giá trị được trao đổi trong các tiêu đề yêu cầu và phản hồi. Tiêu đề yêu cầu HTTP chứa yêu cầu được thực hiện bởi máy khách. Nó chứa thông tin như phương pháp, đường dẫn URL và phiên bản giao thức HTTP.
Tiêu đề phản hồi HTTP chứa ngày, kích thước và loại tệp mà máy chủ đang gửi lại cho máy khách. Khi máy chủ gửi cookie, máy khách sẽ nhận cookie, lưu và gửi lại cho máy chủ mỗi khi máy khách truy cập một trang trên máy chủ đó.
Cookie được lưu trữ trong khoảng thời gian giới hạn trên máy của khách hàng và sau khoảng thời gian được chỉ định là
hoàn thành, chúng sẽ tự động bị xóa.
Hạn chế chính của cookie là hầu hết các trình duyệt đều cho phép người dùng hủy kích hoạt (không chấp nhận)
bánh quy.
Vì giá trị của cookie có thể xác định duy nhất một khách hàng, cookie thường được sử dụng trong theo dõi phiên.
ví dụ mô tả khái niệm cookie.
2 .Cookie Api
Các Servlet API cung cấp lớp javax.servlet.http.Cookie để tạo và làm việc với cookie. Những
cookie là một lượng nhỏ thông tin được gửi bởi một servlet đến trình duyệt Web. Giá trị của cookie là
duy nhất và có thể được sử dụng để xác định một khách hàng qua đó giúp quản lý phiên.
Lớp Cookie cung cấp một số phương pháp giúp quản lý cookie. Những phương thức đó là:
- - public void setMaxAge(int expiry): Phương pháp này đặt tuổi tối đa của cookie tính bằng giây. Nếu giá trị là dương, thì cookie sẽ hết hạn sau nhiều giây được chỉ định trước khi hết hạn.
- - public int getMaxAge (): Phương thức này trả về tuổi tối đa của cookie. Phương thức này trả về một số nguyên chỉ định tuổi tối đa của cookie tính bằng giây.
Trình bày cách lấy tuổi trong cookie
Mã trả về tuổi tối đa của cookie, được chỉ định bằng giây public void setValue (java. lang. StringnewValue).
ví dụ trình bày cách đặt giá trị của cookie.
- public java.lang.String getValue (): Phương thức này trả về giá trị của cookie. Phương thức trả về một chuỗi có chứa giá trị hiện tại của cookie.
- public java.lang.String getName () Phương thức này trả về tên của cookie. Sau khi cookie đã được tạo tên của nó không thể thay đổi.
ví dụ trình bày cách truy xuất tên và giá trị của cookie.
- public void setPath(String uri): Phương pháp này đặt đường dẫn cho cookie. Cookie có sẵn cho tất cả các trang được chỉ định trong thư mục và các thư mục con của nó. Đường dẫn của cookie phải có Servlet đặt cookie.
ví dụ về trình bày cách đặt đường dẫn cho cookie.
- public java.lang.String getPath(): Phương thức này trả về đường dẫn trên máy chủ mà máy khách trả về cookie. Cookie có sẵn cho tất cả các đường dẫn phụ trên máy chủ. Phương thức này trả về một chuỗi chỉ định một đường dẫn có chứa tên servlet, ví dụ, / AptechDemo.
- public Cookie[] getCookies(): Cookie có thể được đọc từ một yêu cầu bằng cách sử dụng phương thức HttpServletRequest.getCookies (). Phương thức getCookies () trả về một mảng chứa tất cả các đối tượng Cookie mà khách hàng gửi cùng với yêu cầu.
ví dụ về trình bày cách đọc cookie nhận được trong yêu cầu của khách hàng.
void addCookie (Cookie cookie):
- Các cookie được gửi bởi servlet tới trình duyệt bằng phương thứctheHttpServletResponse .addCookie (j avax.servlet.http.Cookie).
- Phương pháp này thêm trường vào tiêu đề phản hồi HTTP để gửi cookie đến trình duyệt, mỗi lần một cookie.
- Phương pháp này thêm cookie được chỉ định vào phản hồi. Phương thức này có thể được gọi nhiều lần để đặt nhiều cookie. Ví dụ, phản hồi. addcookie (Cookie mới (“tên cookie”, “giá trị cookie”));
3 .Securing Cookies
Để bảo mật cookie khỏi tin tặc trên Web, bạn có thể định cấu hình cookie với hai cài đặt bảo mật cụ thể là secure và HttpOnly.
Cờ an toàn thông báo cho trình duyệt Web biết rằng cookie sẽ chỉ được gửi trên kết nối SSL. Điều này có nghĩa là bất kỳ trang nào của ứng dụng Web không được bảo mật sẽ không thể truy cập cookie.
JavaScript cũng có thể được sử dụng để truy cập cookie từ máy. Điều này có nghĩa là cookie có sẵn trên các tập lệnh và có thể bị tin tặc truy cập để thao túng.
Servlet 3.0 cung cấp cờ HttpOnly thông báo cho trình duyệt rằng nội dung của cookie không thể truy cập được trong JavaScript. Nó được bao gồm trong tiêu đề phản hồi HTTP và ngăn chặn cookie khỏi một số loại tấn công.
- public void setSecure ():Phương thức này thông báo cho trình duyệt chỉ gửi cookie thông qua giao thức bảo mật, chẳng hạn như HTTPS.
- public void sethtpOnly(boolean):Phương pháp này có thể được sử dụng để đánh dấu hoặc bỏ đánh dấu cookie. Nếu được đặt là true, thì cookie được đánh dấu là HttpOnly và không hiển thị với mã kịch bản phía máy khách.
-public boolean isHttpOnly():Phương pháp này được sử dụng để kiểm tra xem cookie đã được đánh dấu là HttpOnly hay chưa.
ví dụ cho biết cách đặt cookie thành HttpOnIy và cờ an toàn theo lập trình trong Servlet.
Các website sử dụng cookie theo nhiều cách khác nhau. Đây là một số trường hợp được sử dụng nhiều:
- Site có thể xác định một cách chính xác số lượng người truy cập site. Chỉ có một cách để site có thể đếm chính xác số lượng khách truy cập là thiết lập một cookie với một ID duy nhất cho mỗi khách. Sử dụng cookie, các site có thể xác định:
Cách một website có thể thực hiện điều này là bằng sử dụng cơ sở dữ liệu. Lần đầu khi một khách truy cập đến, site sẽ tạo một ID mới trong cơ sở dữ liệu và gửi ID dưới dạng một cookie. Lần sau khi người dùng này truy cập trở lại, site có thể tăng số đếm có liên quan với ID trong cơ sở dữ liệu và biết số lần khách truy cập vào trang.
- Site có thể lưu các sở thích người dùng để thể tạo sự khác biệt giữa các khách truy cập (có thể nói website cho phép bạn có khả năng tùy chỉnh). Cho ví dụ, nếu bạn truy cập msn.com, nó sẽ cung cấp cho bạn khả năng thay đổi nội dung, giao diện và màu sắc. Nó cũng cho phép bạn nhập vào zip code và có thể nhận được các thông tin về dự báo thời tiết theo khu vực. Khi bạn nhập vào zip code, gặp giá trị name-value sau sẽ được thêm vào file cookie của MSN.
Không có nhận xét nào:
Đăng nhận xét