Предпосылка : Требования к предстоящему проекту включают в себя тот факт, что никто, кроме авторизованных пользователей, не имеет доступа к определенным данным. Обычно это нормально, но это не обычное обстоятельство. Требования гласят, что даже программист или любой другой ИТ-специалист не сможет получить доступ к этой информации. (Они хотят, чтобы я сохранил его, не видя, когда-либо.)
Во всех предложенных мной сценариях я всегда могу найти способ доступа к данным. Позвольте мне описать некоторые из них.
Сценарий I: Ограничить таблицу в действующей базе данных так, чтобы только администратор SQL мог получить к ней доступ напрямую.
Hack 1: Я внедряю изменение, которое отправляет данные в другую таблицу для последующего просмотра. Кроме того, администратор SQL может видеть данные, что нарушает требование.
Сценарий II: Шифрование данных, поэтому для расшифровки требуется пароль. Этот пароль будет известен только пользователям. Это потребуется при каждом создании новой записи, а также при каждом извлечении данных из старой записи. Шифрование / дешифрование происходит в JavaScript, поэтому пароль никогда не будет отправлен на сервер, где его можно было бы зарегистрировать или прослушать.
Hack II: Внесите изменения, которые регистрируют нажатия клавиш в javascript и отправляют их обратно на сервер, чтобы я мог восстановить пароль. Или разверните изменение, в котором просто хранятся незашифрованные данные в скрытом поле, которое можно опубликовать на сервере для последующего просмотра.
Сценарий III: Сделайте то же самое, что и Сценарий II, за исключением того, что шифрование / дешифрование происходит на веб-сайте, который мы не контролируем. Этот волшебный веб-сайт позволит пользователю ввести пароль и зашифрованные или текстовые данные, а затем использовать JavaScript для расшифровки или шифрования этих данных. Затем пользователь может просто скопировать зашифрованный текст и вставить поле для новых записей. Им также пришлось бы использовать этот сайт для просмотра простого текста старых записей.
Hack III: Помимо установки полноценного регистратора ключей в их системе, я не знаю, как его сломать.
Итак, Сценарий III выглядит многообещающе, но неудобно для пользователей. Есть ли другие возможности, которые я могу упускать из виду?