Bảo mật là một trong những phần quan trọng nhất đối với các dịch vụ của Internet. Đây là một lĩnh vực rất rộng và có rất nhiều vấn đề về bảo mật mà ứng dụng bất kỳ một ứng dụng trên web nào cũng phải đối mặt. Tr−ớc hết là bảo mật với các kịch bản trên mạng cũng nh− cách thức mà một trình duyệt thực hiện để có thể hoạt động một cách an toàn. Tiếp đó là cách thức bảo vệ dữ liệu của ng−ời dùng khi nó đ−ợc liên kết với server, cho phép ng−ời dùng làm việc với các dịch vụ của Ajax một cách tự tin. Cuối cùng sẽ là cách thức bảo vệ các dịch vụ dữ liệu mà các client Ajax sử dụng để ngăn chặn việc sử dụng các dữ liệu một cách bất hợp pháp từ các thực thể khác trên mạng.
Bảo mật JavaScript và trình duyệt
Khi tiếp cận với một ứng dụng Ajax, server web gửi một tập các tập lệnh JavaScript tới một trình duyệt web đang chạy trên một máy khác (máy này đ−ợc biết đến rất ít). Trình duyệt xử lý để thực hiện những lệnh này. Khi trình duyệt đang thực hiện những lệnh trên, ng−ời sử dụng ứng dụng trên đang đặt một số sự kiện trong ứng dụng cũng nh− trong các quản lý của nó. Trình duyệt chuẩn hoá và nhận ra rằng không phải lúc nào các sự kiện này cũng t−ơng ứng, nó đ−a ra các biện pháp an toàn để bảo vệ nó khỏi ảnh h−ởng. Ta sẽ tìm hiểu cơ chế bảo vệ và cách thức làm việc với chúng.
Tr−ớc tiên chúng ta sẽ định nghĩa “mã di động”. Mọi thứ trên ổ cứng của máy tính là một tập các dữ liệu nhị phân”. Ta có thể phân biệt giữa dữ liệu thuần và dữ liệu thể hiện các lệnh máy (các lệnh này có thể đ−ợc thực hiện). Dữ liệu thuần không thể làm gì đ−ợc trừ khi một vài tiến trình thực hiện sử
dụng nó. Trong các ứng dụng client/server, client đ−ợc cài đặt trên máy của ng−ời sử dụng cũng giống nh− bất kỳ ứng dụng desktop nào, và tất cả l−u l−ợng vào mạng đều là những dữ liệu thuần. Mã JavaScript của một ứng dụng Ajax lại là mã có thể thực hiện đ−ợc. Vì thế nó có thể thực hiện rất nhiều thứ mà một dữ liệu “chết” không thể làm đ−ợc. Tuy vậy điều này cũng rất nguy hiểm. Chúng ta mô tả mã là “di động” nếu nh− nó đ−ợc l−u trữ trên 1 máy và có thể truyền dọc theo mạng để thực hiện trên một máy khác. Máy tính nhận các mã di động này cần phải xem xét liệu xem các mã này có đúng là từ nơi gửi mã đến hay không. Điều này thực sự quan trọng đặc biệt trong môi tr−ờng Internet công cộng.