Dữ liệu địa chỉ là dữ liệu cá nhân khi nó gắn với một người cụ thể, vì nó chỉ ra nơi một người sinh sống hoặc làm việc. Điều đó không chỉ là chuyện pháp lý trên giấy tờ: nó thay đổi cách bạn quyết định thu thập gì, giữ trong bao lâu, ai được xem, và cả cách bạn dựng bộ dữ liệu kiểm thử. Bài này đi qua những điểm thực tế nhất, kèm những chỗ cần thận trọng khi không chắc chắn.
Vì sao địa chỉ được coi là dữ liệu cá nhân?
Địa chỉ không phải một chuỗi vô danh. Khi nó đi kèm tên, số điện thoại, mã đơn hàng hoặc bất kỳ mã nhận dạng nào, nó trở thành thông tin về một người xác định được. Ngay cả khi đứng một mình, một địa chỉ đầy đủ vẫn có thể chỉ tới một hộ gia đình, và ở nhiều nơi, một căn hộ chỉ có một hộ sinh sống.
Vì vậy, câu hỏi không phải là địa chỉ có phải dữ liệu cá nhân hay không, mà là nó đang được gắn với ai và được dùng cho việc gì. Cùng một chuỗi ký tự có thể là dữ liệu cá nhân trong hệ thống đơn hàng, nhưng lại là dữ liệu tổng hợp vô hại trong một tệp mẫu mà không trỏ tới ai.
Cần lưu ý thêm rằng dữ liệu vị trí hiện đại không chỉ là địa chỉ viết ra. Lịch sử giao hàng, ảnh chụp bảng tên nhà, và cả dấu vết của các lần tra cứu địa chỉ cũng có thể tiết lộ nơi ở. Khi rà soát, hãy nhìn cả những nguồn đó chứ không chỉ trường địa chỉ trong cơ sở dữ liệu chính.
Thu thập địa chỉ đến mức nào là đủ?
Nguyên tắc dễ áp dụng nhất là chỉ thu thập những gì cần cho mục đích đã nói rõ với người dùng. Nếu mục đích là giao một đơn hàng, thì địa chỉ giao hàng là cần thiết, nhưng địa chỉ thường trú, địa chỉ cơ quan và địa chỉ của người liên hệ thứ hai thì thường không.
Việc thu thập thêm dữ liệu địa chỉ với hy vọng rằng sau này sẽ có ích là một cái bẫy quen thuộc. Dữ liệu không được dùng tới vẫn phải được bảo vệ, vẫn phải được rà soát, và vẫn nằm trong phạm vi phải xóa khi có yêu cầu. Mỗi trường địa chỉ thừa là một khoản nợ kỹ thuật và một rủi ro, chứ không phải một tài sản miễn phí.
Cũng nên nói rõ với người dùng vì sao cần địa chỉ ngay tại chỗ nhập, thay vì chỉ đặt một dấu hoa thị. Khi người dùng hiểu lý do, họ có xu hướng nhập đúng hơn, và đó là lợi ích kỹ thuật trực tiếp chứ không chỉ là vấn đề tuân thủ.
Lưu địa chỉ trong bao lâu và ở dạng nào?
Địa chỉ cần được giữ trong thời gian cần cho mục đích đã nêu, và sau đó phải được xóa hoặc ẩn danh hóa. Với hệ thống đơn hàng, hạn mức đó thường gắn với thời hạn bảo hành, thời hạn đổi trả và nghĩa vụ lưu trữ chứng từ, nên cần thống nhất giữa các bộ phận thay vì để mỗi nơi giữ một kiểu.
Một điểm dễ bị bỏ qua là dữ liệu tồn tại ở nhiều bản sao. Địa chỉ có thể nằm trong cơ sở dữ liệu chính, trong bản sao lưu, trong nhật ký hệ thống, trong công cụ hỗ trợ khách hàng, và trong tệp xuất báo cáo. Nếu quy trình xóa chỉ chạm tới cơ sở dữ liệu chính, dữ liệu vẫn còn ở những chỗ khác, và điều đó thường chỉ được phát hiện khi có yêu cầu xóa thực tế.
Về dạng lưu, việc mã hóa dữ liệu lưu trữ và giới hạn quyền truy cập theo vai trò là những biện pháp cơ bản. Chúng không biến địa chỉ thành dữ liệu vô hại, nhưng chúng làm giảm thiệt hại khi có sự cố truy cập ngoài ý muốn.
Hiển thị địa chỉ cho người khác thì phải che phần nào?
Không phải ai trong hệ thống cũng cần thấy địa chỉ đầy đủ. Nhân viên xử lý đơn hàng cần thấy đủ để giao, nhưng bộ phận phân tích thì thường chỉ cần tới mức thành phố hoặc khu vực. Việc che bớt ở tầng hiển thị giúp giảm số người tiếp xúc với dữ liệu đầy đủ mà không làm gián đoạn công việc.
Khi che, hãy che theo cách có ý nghĩa. Giữ lại phần khu vực và bỏ đi phần nhận dạng được hộ gia đình thường hữu ích hơn là che vài ký tự ở giữa, vì cách che ký tự vẫn để lộ khá nhiều thông tin khi kết hợp với các nguồn khác. Với ảnh chụp màn hình và tài liệu đào tạo, hãy dùng dữ liệu tổng hợp thay vì dữ liệu thật đã che.
Nguyên tắc này cũng áp dụng cho nhật ký hệ thống. Địa chỉ đầy đủ trong nhật ký là một trong những chỗ rò rỉ phổ biến nhất, vì nhật ký thường được lưu lâu, ít được rà soát, và lại nằm ngoài luồng xử lý dữ liệu chính. Khi ghi nhật ký, hãy chỉ ghi những gì thực sự cần cho việc chẩn đoán.
Dùng địa chỉ thật để kiểm thử có được không?
Dùng địa chỉ thật trong kiểm thử là thói quen phổ biến vì tiện, nhưng nó đưa dữ liệu cá nhân vào những nơi khó kiểm soát nhất: kho mã, tệp cấu hình, ảnh chụp màn hình, và cả môi trường thử nghiệm có quyền truy cập rộng hơn môi trường thật.
Nếu chính sách của bạn cho phép dùng dữ liệu thật trong một số trường hợp, hãy xác định rõ điều kiện và thời hạn, đồng thời bảo đảm có cách xóa. Trong phần lớn trường hợp, cách làm an toàn và đơn giản hơn là không dùng dữ liệu thật ngay từ đầu, vì bạn không phải giải quyết bài toán xóa dữ liệu khỏi kho mã về sau.
Điều đáng chú ý là dữ liệu giả cũng cần được nói rõ là giả. Nếu một bản ghi tổng hợp trông hoàn toàn giống một địa chỉ thật, người đọc tài liệu có thể nhầm và chép nó vào nơi khác. Hãy đặt tên nguồn dữ liệu đủ rõ để bất kỳ ai đọc cũng biết nó không tương ứng với người thật.
Dùng địa chỉ tổng hợp để tránh rủi ro
Với hầu hết nhu cầu kiểm thử, địa chỉ tổng hợp là lựa chọn phù hợp hơn. Nó cho phép bạn thử nhiều quốc gia, nhiều cấu trúc trường và nhiều trường hợp biên mà không phải đưa dữ liệu của người thật vào bất kỳ môi trường nào.
Trình tạo địa chỉ giả của trang này sinh địa chỉ cho nhiều quốc gia với các trường khớp nhau, và mỗi trường có thể sao chép riêng. Toàn bộ dữ liệu là tổng hợp, không trỏ tới người hay địa chỉ có thật, và chỉ dùng cho kiểm thử phần mềm. Cách tổ chức loại dữ liệu này trong dự án được nói thêm ở bài dữ liệu địa chỉ trong kiểm thử.
Cần nhấn mạnh rằng dữ liệu tổng hợp giải quyết vấn đề dữ liệu cá nhân trong kiểm thử, nhưng không thay thế được các quyết định về thu thập, lưu trữ và xóa dữ liệu trong hệ thống thật. Hai việc đó cần được xử lý riêng.
Phần dành cho nhà phát triển
Hãy đưa những quyết định về địa chỉ vào tài liệu thiết kế ngay từ đầu, vì chúng khó sửa về sau. Khi đã có dữ liệu trong cơ sở dữ liệu và trong bản sao lưu, việc thay đổi phạm vi thu thập hay thời hạn lưu trữ sẽ tốn kém hơn nhiều so với việc quyết định đúng từ lúc dựng biểu mẫu.
Những điểm khác nên chốt:
- Ghi rõ mục đích của từng trường địa chỉ, và bỏ những trường không phục vụ mục đích nào.
- Bảo đảm quy trình xóa bao gồm bản sao lưu, nhật ký và công cụ hỗ trợ, không chỉ cơ sở dữ liệu chính.
- Che bớt địa chỉ theo vai trò, và dùng dữ liệu tổng hợp cho ảnh chụp màn hình cùng tài liệu.
- Hạn chế ghi địa chỉ đầy đủ vào nhật ký; nếu buộc phải ghi, hãy đặt thời hạn lưu ngắn.
- Không dùng địa chỉ thật trong mã kiểm thử, kể cả trong môi trường nội bộ.
- Kiểm tra lại xem có hàm nào đang ghi địa chỉ vào nơi không nằm trong kế hoạch lưu trữ hay không.
Những nội dung trên là những điểm cần cân nhắc khi thiết kế, không phải một bản tư vấn pháp lý. Quy định cụ thể khác nhau giữa các nơi và thay đổi theo thời gian, nên khi nghi ngờ, hãy tham khảo ý kiến người có chuyên môn thay vì tự suy đoán.
Bước tiếp theo
Hãy liệt kê mọi nơi địa chỉ đang được lưu trong hệ thống của bạn, kể cả nhật ký và tệp xuất báo cáo, rồi đối chiếu với mục đích thu thập ban đầu. Sau đó mở trình tạo địa chỉ giả và thay những địa chỉ thật còn sót trong bộ kiểm thử bằng dữ liệu tổng hợp.