Который является лучшей, белой безопасностью списка или черного списка или обоими?

self.modified_at = timezone.now

Это ваша проблема. Вы хотели сделать timezone.now(). Это сбой при разборе даты из ссылки на функцию вместо строки или объекта datetime. Вы не активируете поведение, если пропустите метод save из класса BaseModel.

10
задан Wally Lawless 2 February 2009 в 18:24
поделиться

8 ответов

Из классической бумаги "Защита информации в Компьютерных системах" (Saltzer & Schroeder 1975), который описывает восемь важных принципов разработки, один из которых:

Отказоустойчивые значения по умолчанию: Основные решения о предоставлении доступа на разрешении, а не исключение. Этот принцип, предложенный E. Glaser в 1965,8 средствах, что ситуация по умолчанию является отсутствием доступа и схемой защиты, определяет условия, при которых разрешен доступ. Альтернатива, в которой механизмы пытаются определить условия, при которых должен быть отказан доступ, представляет неправильную психологическую основу для дизайна защищенной системы. Консервативный дизайн должен быть основан на аргументах, почему объекты должны быть доступными, а не почему они не должны. В большой системе неверно рассмотрят некоторые объекты, таким образом, значение по умолчанию отсутствия разрешения будет более безопасным. Дизайн или реализация путают в механизме, который дает явное разрешение, имеет тенденцию перестать работать путем отказа от разрешения, безопасной ситуации, так как это будет быстро обнаружено. С другой стороны, дизайн или реализация путают в механизме, который явно исключает доступ, имеет тенденцию перестать работать путем предоставления доступа, отказ, который может остаться незамеченным в нормальной эксплуатации. Этот принцип применяется и к внешнему виду механизма защиты и к его конкретной реализации.

23
ответ дан 3 December 2019 в 13:30
поделиться

Белый список. С помещением в черный список необходимо рассмотреть весь вход, который МОГ БЫ быть недопустимым. С белым списком Вы просто рассматриваете то, что допустимо.

11
ответ дан 3 December 2019 в 13:30
поделиться

Давайте предположим, что у Вас был ряд тысячи дверных ключей, к которым необходимо предоставить кому-то доступ.

Вы прошли бы все ключи и попытку вынуть тех, этот человек абсолютно не нуждается и дает им остальных? Или Вы просто дали бы им ключи, они абсолютно нуждаются и отклоняют их остальные?

Который имеет больший потенциал для ошибки?

6
ответ дан 3 December 2019 в 13:30
поделиться

Безопасность всегда создается вокруг того, что Вы называете "белым списком". Заблокируйте их из всего и только откройте то, в чем они нуждаются.

3
ответ дан 3 December 2019 в 13:30
поделиться

Вы не знаете то, что Вы не знаете.

Существует много способов выйти из пользовательской проверки (использующий UTF-8 или другое кодирование, и т.д.), и больше чем один способ сделать атаки с использованием кросс-сайтовых сценариев. Вы уверены, что можно придумать черный список, который касается всех возможных нападений? Этот список мог быть бесконечным.

Однако придумывание списка того, что хорошо, намного легче, и следовательно намного более безопасно.

2
ответ дан 3 December 2019 в 13:30
поделиться

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

1
ответ дан 3 December 2019 в 13:30
поделиться

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

0
ответ дан 3 December 2019 в 13:30
поделиться

Всегда работайте с белым списком, тем путем даже при пропавших без вести чего-то, которое Вы не уязвимы.

1
ответ дан 3 December 2019 в 13:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: