背景情報:
私は、HIPAA (医療) データを保存および取得する Web アプリケーションを実行する開発者チームの一員です。最近、HIPAA ガイドラインが更新され、すべての識別クライアント情報が「保管中」 (データベースに保存され、アクセスされていないとき) に暗号化されることを要求するポリシーが含まれるようになりました。
最初の問題
最初に取り組まなければならなかった問題は、侵害が発生した場合にデータを安全にする方法でデータを双方向に暗号化する最善の方法を決定することでした。
最初の解決策
私たちが思いついた最も迅速な解決策は、データをデータベースに挿入する前に、 mcryptを使用してデータを暗号化することでした。
新しい問題
私たちが開発しているアプリケーションはかなり古く (Web アプリケーションのように)、多くの手続き型プログラミングを使用し、 mysql_query関数に大きく依存してデータを挿入、更新、取得、削除しています。コードをデータベース抽象化レイヤーに変換する時間や余裕はありません。したがって、この暗号化/復号化システムを実装する唯一の方法は、すべての CRUD クエリを手動で編集して、mcryptで暗号化されたデータを使用することです。これは非常に非効率的で、非常にエラーが発生しやすくなります。
私たちの提案するソリューション
私たちの問題を解決するための最速かつ最も効果的な方法は、ネイティブのmysql_query関数を独自の工夫で上書きすることであると判断しました。新しい関数では、クエリをサーバーに送信する前/結果セットを返す前に、データ値を暗号化/復号化します。
あなたの人々が来る場所
- これは、最初の問題を解決するための最良の解決策ですか?
- 既存のコア PHP 関数を上書きするにはどうすればよいでしょうか?