Mysql шифрование / хранение конфиденциальных данных,

Для моего PHP-сайта у меня есть следующее:

Теперь я хочу использовать функцию AES_Encrypt для шифрования конфиденциальных данных, используя ключ $ для шифрования и дешифрования, хранящихся вне каталога webroot.

Это может потенциально хранить данные о пациентах, делает ли то, что у меня на месте, достаточно безопасным?


Вопрос:

Как вы дезинфицируете входы, когда вы вставляете / ОБНОВЛЯЕТСЯ? Если вы используете подготовленные заявления, вы также не должны удалять данные вручную.

Ответ:
пример:

  $firstname = ucwords(filter_input(INPUT_POST, 'firstname', FILTER_SANITIZE_STRING)); 

Related of "Mysql шифрование / хранение конфиденциальных данных,"

Я всегда понимал НЕ ИСПОЛЬЗОВАТЬ встроенную в MySQL функцию шифрования, поскольку точка шифрования данных в состоянии покоя (в SQL) заключается в том, что если сервер взломан, данные не подвержены риску.

Проблема с встроенной функциональностью MySQL заключается в том, что она не применяется к тому, когда данные передаются в состояние покоя и из него, поэтому открытый текст любых данных может быть записан в журналах MySQL (и в других местах системы хранения , такие как запросы запросов, не зашифрованы, поэтому вы можете из многочисленных поисковых запросов и результатов их count выводить значения столбцов) до / в зашифрованном виде. Вы можете прочитать об этом подробнее .

Что касается шифрования, вы должны использовать некоторые проверенные и проверенные библиотеки, такие как defuse / php-encryption .

Из того, что я прочитал в своем собственном исследовании по этой теме, ссылка, предоставленная Magnus для разрядки / php-шифрования, является одним из лучших способов предотвращения того, что MySQL когда-либо заставляет вас нарушать ваши данные, никогда не позволяя программе / серверу MySQL когда-либо видеть значение открытого текста ваших данных.

+1 к ответу Мартина, но я добавлю некоторую информацию о том, что она стоит.

MySQL 5.7 реализовал шифрование в режиме ожидания для табличных пространств InnoDB ( https://dev.mysql.com/doc/refman/5.7/en/innodb-tablespace-encryption.html ).

Сообщается, что MySQL 8.0 также реализует шифрование в режиме ожидания для журналов повторного журнала и отмены журналов InnoDB ( https://dev.mysql.com/doc/refman/8.0/en/innodb-tablespace-encryption.html ).

Это все равно оставляет незашифрованные журналы запросов и двоичный журнал. Для этого нам придется подождать некоторую будущую версию MySQL.

Почему так долго? Руководитель службы безопасности для MySQL сказал в пятницу на конференции Per-Con Live на конференции Percona Live, что они очень осторожны, чтобы правильно реализовать шифрование. Это означает внедрение функций для шифрования, а также ключевую защиту и поворот ключа, а также другое использование. Очень сложно получить это право, и они не хотят внедрять что-то, что станет устаревшим и сделать все зашифрованные базы данных недействительными.