Mức độ bảo mật và quyền riêng tư

Khi tạo biểu mẫu, bạn sẽ làm việc với dữ liệu người dùng. Mối quan tâm số một của bạn là nhằm đảm bảo rằng dữ liệu người dùng được giữ riêng tư và được chuyển một cách an toàn. Hãy cùng xem những việc bạn có thể làm.

Đảm bảo biểu mẫu được bảo mật

Bước đầu tiên, hãy nhớ yêu cầu càng ít dữ liệu càng tốt. Đừng yêu cầu dữ liệu bạn không cần và luôn đặt câu hỏi liệu bạn có cần tất cả dữ liệu được yêu cầu hay không. Ít dữ liệu hơn nghĩa là ít rủi ro hơn, ít chi phí hơn và trách nhiệm pháp lý ít hơn. Ngoài ra, việc giảm số lượng trường trong một biểu mẫu sẽ giúp biểu mẫu bớt phức tạp, dễ điền hơn và có thể giảm tỷ lệ bỏ ngang.

Luôn sử dụng HTTPS, đặc biệt đối với các trang có chứa biểu mẫu. Với HTTPS, dữ liệu được mã hoá khi đến từ máy chủ và khi quay về máy chủ.

Giả sử bạn đang ở trong một quán cà phê và sử dụng Wi-Fi công cộng. Bạn mở một trang web thương mại điện tử và điền thông tin thẻ tín dụng để mua hàng. Nếu trang web sử dụng HTTP, thì bất kỳ ai (có khả năng làm việc này) sử dụng cùng một mạng Wi-Fi công cộng đều có thể thấy thông tin thẻ tín dụng của bạn. Nếu trang web sử dụng HTTPS thì dữ liệu sẽ được mã hoá nên được bảo vệ khỏi bất kỳ ai cố gắng truy cập vào dữ liệu đó.

Trên trang web của mình, bạn cũng nên đảm bảo chuyển hướng mọi yêu cầu HTTP đến HTTPS. Tìm hiểu thêm về cách chuyển hướng tất cả lưu lượng truy cập đến HTTPS.

Giúp người dùng bảo mật dữ liệu của họ

Trong mô-đun đầu tiên, bạn đã tìm hiểu về hai cách có thể chuyển dữ liệu: sử dụng yêu cầu GET và sử dụng yêu cầu POST.

Với yêu cầu GET, dữ liệu biểu mẫu sẽ được đưa vào dưới dạng chuỗi truy vấn trong URL yêu cầu. Nếu bạn gửi biểu mẫu sử dụng yêu cầu GET, trình duyệt sẽ thêm URL yêu cầu bao gồm dữ liệu biểu mẫu vào nhật ký duyệt web của bạn. Thuận tiện nếu bạn muốn tra cứu các lần gửi biểu mẫu trước đây, ví dụ: biểu mẫu tìm kiếm. Không hiệu quả chút nào, nếu dữ liệu nhạy cảm được gửi và mọi người có quyền truy cập vào nhật ký duyệt web hoặc mạng cục bộ của bạn đều có thể xem thông tin này.

Sử dụng các yêu cầu POST cho mọi biểu mẫu có thể gửi dữ liệu cá nhân hoặc nhạy cảm. Bằng cách này, chỉ tập lệnh phụ trợ đang xử lý dữ liệu mới hiển thị.

Còn việc lưu và xử lý dữ liệu cá nhân ngay trong trình duyệt thì sao? Bạn có thể sử dụng bộ nhớ của máy khách, chẳng hạn như localStorage để lưu trữ dữ liệu cá nhân trong trình duyệt. Đối với quyền riêng tư, đây không phải là điều lý tưởng. Xin nhắc lại rằng tất cả những người có quyền truy cập vào trình duyệt của bạn đều có thể đọc thông tin này. Bạn chỉ nên lưu trữ giá trị được mã hoá cho dữ liệu cá nhân.

Đảm bảo người dùng có thể đăng ký và đăng nhập một cách an toàn

Xác thực tài khoản người dùng là một vấn đề phức tạp về quyền riêng tư và bảo mật. Bạn nên sử dụng nhà cung cấp danh tính bên thứ ba, thay vì xây dựng hệ thống xác thực bảo mật của riêng mình.

Tìm hiểu thêm về các phương pháp hay nhất để xác thực tài khoản và quản lý mật khẩu.

Giúp người dùng truy cập vào dữ liệu cá nhân của họ

Nhiều khu vực có các luật và quy định về quyền riêng tư và bảo vệ dữ liệu, trong đó có CCPA ở California và PDPA ở Ấn Độ. Mọi trang web có mặt ở Liên minh Châu Âu (EU) đều phải tuân thủ Quy định chung về việc bảo vệ dữ liệu (GDPR), ngay cả khi trang web đó không đặt tại Liên minh Châu Âu.

GDPR đặt ra các nguyên tắc về việc thu thập và xử lý thông tin cá nhân của những người sống ở Liên minh Châu Âu. Việc xử lý dữ liệu cá nhân cần phải có sự đồng ý. Người dùng có thể yêu cầu thông tin cá nhân mà bạn lưu trữ bất cứ lúc nào và bạn phải chính thức thông báo về việc rò rỉ dữ liệu. Đây là thông tin tốt đối với người dùng, vì điều này giúp đảm bảo rằng quyền riêng tư của họ được tôn trọng. Tìm hiểu thêm về GDPR.

Hãy đảm bảo người dùng biết cách bạn dự định xử lý dữ liệu cá nhân. Tính minh bạch là yếu tố then chốt để tạo dựng niềm tin. Người dùng luôn có thể truy cập, sửa đổi và xoá tất cả dữ liệu mà bạn đã lưu cho họ.

Đảm bảo người dùng có thể cập nhật dữ liệu cá nhân của họ

Giúp người dùng dễ dàng cập nhật dữ liệu cá nhân, bao gồm mật khẩu, địa chỉ email và tên người dùng. Thông báo cho người dùng về các thay đổi đối với dữ liệu cá nhân mà họ lưu trữ và đảm bảo người dùng có thể thu hồi các thay đổi. Ví dụ: gửi email đến địa chỉ email cũ và mới sau khi người dùng thay đổi địa chỉ email.

Giúp người dùng dễ dàng xoá tài khoản của họ (bao gồm mọi dữ liệu liên quan) và giúp họ tải dữ liệu xuống (nếu phù hợp). Việc xoá tài khoản là yêu cầu pháp lý ở một số khu vực.

Yêu cầu một bước xác thực bổ sung, ví dụ: nhập lại mật khẩu hiện tại, để xem hoặc thay đổi thông tin cá nhân trên trang web của bạn.

Tìm hiểu thêm: Các phương pháp hay nhất về quyền riêng tư trong ứng dụng web.

Đảm bảo tất cả dữ liệu đều ở trạng thái tốt

Trong học phần trước, bạn đã tìm hiểu về tính năng xác thực trên giao diện người dùng. Việc xác thực giao diện người dùng rất quan trọng, nhưng người dùng vẫn có thể gửi dữ liệu không hợp lệ. Bước tiếp theo, bạn cũng phải xác thực dữ liệu trên phần phụ trợ trước khi lưu dữ liệu trong cơ sở dữ liệu của mình. Điều này đảm bảo rằng không có dữ liệu không hợp lệ nào được lưu trong cơ sở dữ liệu của bạn.

Quy trình xác thực giúp đảm bảo định dạng dữ liệu là hợp lệ, nhưng bạn vẫn không nên tin tưởng dữ liệu do người dùng nhập. Làm cách nào để xuất dữ liệu một cách an toàn? Để ngăn Cross Site Scripting (XSS) và đảm bảo tất cả dữ liệu đều an toàn để đưa vào HTML, bạn phải dọn dẹp dữ liệu trước khi xuất.

Tìm hiểu thêm về cách dọn dẹp dữ liệu trước khi xuất và sử dụng Sanitizer API nếu có thể.

Đảm bảo tất cả nội dung được gửi là do người thật gửi

Để giúp bảo vệ dữ liệu của mình, bạn có nhiều cách để ngăn bot gửi nội dung rác.

Lựa chọn đầu tiên là sử dụng một dịch vụ như reCAPTCHA để phân biệt giữa người thực và bot. Để làm được điều này, bạn phải đưa một đoạn mã JavaScript vào trang của mình và thêm các thuộc tính bổ sung vào nút Submit (Gửi).

reCAPTCHA sẽ thực hiện nhiều bước kiểm tra để xem bạn có phải là người hay không. Ví dụ: Trợ lý có thể yêu cầu bạn xác định các hình ảnh. Phần mềm tự động, chẳng hạn như bot, không thể hoàn thành những thử thách này và cũng không gửi được biểu mẫu.

Một chiếc bình đựng mật ong

Một cách khác là sử dụng tính năng có tên là "honeypot": một trường biểu mẫu được ẩn bằng hình ảnh. Người ta sẽ không nhìn thấy cánh đồng mật ong, nhưng bot sẽ lấp đầy khoảng trống đó. Trên phần phụ trợ, tập lệnh xử lý của bạn có thể kiểm tra xem trường đã hoàn tất hay chưa. Nếu có, nội dung bạn gửi có thể là của một bot và bạn có thể bỏ qua.

Ngoài ra, còn có các dịch vụ như Akismet có thể giúp bạn chống thư rác. Bộ lọc Akismet hoạt động bằng cách kết hợp thông tin về nội dung rác được thu thập trên tất cả các trang web tham gia, sau đó sử dụng các quy tắc về nội dung rác đó để chặn nội dung rác trong tương lai. Akismet minh bạch với người dùng và phát hiện được hầu hết nội dung rác.

Kiểm tra kiến thức

Kiểm tra kiến thức của bạn về tính bảo mật và quyền riêng tư

Phương pháp ưu tiên để chuyển dữ liệu cá nhân qua biểu mẫu là gì?

Yêu cầu POST.
HTTPS
Yêu cầu GET.
Một con chim bồ câu vận chuyển.

Làm cách nào để ngăn chặn nội dung rác?

Chỉ phục vụ biểu mẫu chay.
HÌNH ẢNH XÁC THỰC
Một trường biểu mẫu Honeypot.
Dịch vụ thư rác.

Tài nguyên