Безопасное автоматическое шифрование столбца mySQL с помощью триггера со строкой ключа

Возможно ли безопасное автоматическое шифрование столбца mySQL с помощью триггера?

Например, я хочу создать такой триггер:

CREATE TRIGGER crypt_trg BEFORE UPDATE ON aaa FOR EACH ROW
BEGIN
SET new.testcol := AES_ENCRYPT(new.testcol, @key);
END;

Очевидно, что хранить ключ шифрования в самой базе данных небезопасно, поэтому я планирую создать переменную с именем @key при открытии соединения с помощью PHP, а затем использовать ее в триггере. Есть ли способ предоставить триггеру доступ к такой переменной сеанса?

Есть ли другой способ получить ключевую переменную из файловой системы сервера, а не из базы данных?

Есть ли другие альтернативы тому, как mySQL автоматически шифрует столбец без перезаписи каждого оператора вставки / обновления в моем приложении?

Поскольку триггеры в конечном итоге представляют собой базу данных, действующую независимо от клиентских команд, ни при каких обстоятельствах не может быть гарантировано, что эта переменная будет установлена ​​клиентом и, следовательно, будет как минимум ненадежной, а в худшем случае невозможной.

deceze 15.05.2018 13:32

Если база данных может получить ключ из файловой системы автономно, то какая разница, если она получит его из «самой базы данных»?

deceze 15.05.2018 13:44

Его просто немного безопаснее. Он немного запутан, и в случае, если база данных скомпрометирована, а файловая система нет, расшифровать невозможно. Я открыт для других предложений!

cronoklee 15.05.2018 14:07

Тогда почему бы не использовать встроенное шифрование InnoDB в состоянии покоя? dev.mysql.com/doc/refman/8.0/en/…

deceze 15.05.2018 14:09

Черт возьми, выглядит отлично, но минимальная версия плагина keyring - mysql 5.7.11, а я использую 5.5

cronoklee 15.05.2018 14:30
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
5
718
0

Другие вопросы по теме