Как создать веб-приложение, в котором у меня нет доступа к данным? - PullRequest
8 голосов
/ 20 ноября 2008

Предпосылка : Требования к предстоящему проекту включают в себя тот факт, что никто, кроме авторизованных пользователей, не имеет доступа к определенным данным. Обычно это нормально, но это не обычное обстоятельство. Требования гласят, что даже программист или любой другой ИТ-специалист не сможет получить доступ к этой информации. (Они хотят, чтобы я сохранил его, не видя, когда-либо.)

Во всех предложенных мной сценариях я всегда могу найти способ доступа к данным. Позвольте мне описать некоторые из них.

Сценарий I: Ограничить таблицу в действующей базе данных так, чтобы только администратор SQL мог получить к ней доступ напрямую.
Hack 1: Я внедряю изменение, которое отправляет данные в другую таблицу для последующего просмотра. Кроме того, администратор SQL может видеть данные, что нарушает требование.

Сценарий II: Шифрование данных, поэтому для расшифровки требуется пароль. Этот пароль будет известен только пользователям. Это потребуется при каждом создании новой записи, а также при каждом извлечении данных из старой записи. Шифрование / дешифрование происходит в JavaScript, поэтому пароль никогда не будет отправлен на сервер, где его можно было бы зарегистрировать или прослушать.
Hack II: Внесите изменения, которые регистрируют нажатия клавиш в javascript и отправляют их обратно на сервер, чтобы я мог восстановить пароль. Или разверните изменение, в котором просто хранятся незашифрованные данные в скрытом поле, которое можно опубликовать на сервере для последующего просмотра.

Сценарий III: Сделайте то же самое, что и Сценарий II, за исключением того, что шифрование / дешифрование происходит на веб-сайте, который мы не контролируем. Этот волшебный веб-сайт позволит пользователю ввести пароль и зашифрованные или текстовые данные, а затем использовать JavaScript для расшифровки или шифрования этих данных. Затем пользователь может просто скопировать зашифрованный текст и вставить поле для новых записей. Им также пришлось бы использовать этот сайт для просмотра простого текста старых записей.
Hack III: Помимо установки полноценного регистратора ключей в их системе, я не знаю, как его сломать.

Итак, Сценарий III выглядит многообещающе, но неудобно для пользователей. Есть ли другие возможности, которые я могу упускать из виду?

Ответы [ 12 ]

1 голос
/ 21 ноября 2008

У вас никогда не будет 100% безопасности, а дополнительная безопасность достигается за счет скорости / цены / удобства и т. Д.

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

Нет смысла иметь железную дверь высокой степени безопасности в качестве ворот, если люди могут просто пройти вокруг нее. Просто реализуйте достойный уровень безопасности.

0 голосов
/ 21 ноября 2008

Если это действительно требование, единственный способ защититься от этого - нанять стороннюю фирму для проверки кода перед выпуском программного обеспечения, и это будет очень дорого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...