Thông tin cơ bản:
Tôi là một phần của một ứng dụng web lưu trữ và truy xuất dữ liệu HIPAA (y tế). Gần đây, các nguyên tắc HIPAA đã được cập nhật để bao gồm một chính sách yêu cầu tất cả thông tin nhận dạng khách hàng phải được mã hóa khi nó "nghỉ ngơi" (được lưu trữ trong cơ sở dữ liệu và không được truy cập).Quá tải một hàm PHP gốc để mã hóa dữ liệu cho tuân thủ HIPAA
Vấn đề ban đầu
Vấn đề đầu tiên chúng tôi phải giải quyết được xác định cách tốt nhất để hai chiều mã hóa dữ liệu trong một cách mà làm cho dữ liệu an toàn trong trường hợp vi phạm.
Giải pháp ban đầu
Giải pháp nhanh nhất, chúng tôi đã đưa ra là sử dụng mcrypt để mã hóa dữ liệu trước khi chúng tôi đưa nó vào cơ sở dữ liệu.
The New Vấn đề
Việc áp dụng chúng tôi đang phát triển là khá cũ (như các ứng dụng web đi) và sử dụng rất nhiều lập trình thủ tục cũng như phụ thuộc quá nhiều vào mysql_query chức năng để chèn, cập nhật, tải về, và xóa dữ liệu. Chúng tôi không có thời gian hoặc sự dịch sang trọng để dịch mã của chúng tôi thành lớp trừu tượng hóa cơ sở dữ liệu. Vì vậy, cách duy nhất để triển khai hệ thống mã hóa/giải mã này là chỉnh sửa thủ công tất cả các truy vấn CRUD để sử dụng dữ liệu đã được mã hóa qua mcrypt. Điều này là rất không hiệu quả và cực kỳ dễ bị lỗi.
đề xuất giải pháp
Chúng tôi quyết định rằng cách nhanh nhất và hiệu quả nhất để giải quyết vấn đề của chúng tôi là để ghi đè lên bản địa mysql_query chức năng với một phân chia một cách riêng của chúng tôi của chúng tôi. Trong hàm mới của chúng ta, chúng ta sẽ mã hóa/giải mã các giá trị dữ liệu trước khi gửi truy vấn đến máy chủ/trả về kết quả.
đâu Bạn Folks Come In
- Đây có phải là giải pháp tốt nhất để giải quyết vấn đề ban đầu của chúng tôi?
- Bạn làm cách nào để ghi đè lên một hàm PHP cốt lõi hiện có?
Vì vậy, vấn đề là mã hóa dữ liệu trong khi nó được chuyển sang máy chủ DB? Hoặc lưu trữ nó trong một thời trang được mã hóa? –
Để lưu trữ nó theo kiểu mã hóa và sau đó dễ dàng truy xuất, giải mã và hiển thị nó khi cần thiết. –
Tôi nghĩ bạn có thể làm điều này ở lớp sai. Bạn có xem xét mã hóa toàn bộ cơ sở dữ liệu MySQL không? Một số giải pháp cho điều này được thảo luận trong [câu hỏi này] (http://stackoverflow.com/questions/143750/mysql-and-data-file-encryption). –