Длину ввода всегда необходимо проверять до передачи данных модулю регулярных выражений. В противном случае из-за неэффективных операций возврата могут возникнуть слабые места в безопасности приложения.
-
- 0
- 0
Если сущность имеет конструктор без аргументов, это, скорее всего, означает, что ее инициализация основана на сеттерах. А это становится потенциальным источником проблем. Инициализация на основе сеттеров может оказаться неполной, а неполная инициализация делает объекты несогласованными.
-
- 0
- 0
Если ответственность за хранение состояния и управление его изменениями рассредоточены между множеством разных компонентов, возникает опасность того, что эти компоненты будут плохо сочетаться друг с другом. Именно мелкие логические противоречия делают возможным появление дыр в безопасности.
-
- 0
- 0
Если смоделировать пароль в виде доменного примитива и реализовать его как объект одноразового чтения, получится страховочный механизм, который даст вам знать, если пароль начнет каким-то образом утекать.
-
- 0
- 0
В большинстве случаев необходимость в переопределении общеизвестных понятий вызвана тем, что с помощью одного и того же понятия описываются сразу несколько вещей в текущем контексте. В таких ситуациях пытайтесь либо разделить понятие на две части, либо придумать совершенно новый термин, уникальный для текущего контекста.
-
- 0
- 0
Целостность данных заключается в обеспечении их согласованности и точности на протяжении всего жизненного цикла.
-
- 0
- 0
Проверяйте предусловия для всех публичных методов — по крайней мере убедитесь в том, что они не принимают null в качестве аргументов.
-
- 0
- 0
Работу с некорректными данными и развитие аномальных ситуаций нужно быстро останавливать, пока это не привело к проблемам с безопасностью.
-
- 0
- 0
Злоумышленников не заботят ваши крайние сроки и приоритеты — слабо защищенную систему можно взломать независимо от того, почему и в каких обстоятельствах она создавалась
-
- 0
- 0
Объект-значение всегда должен оставаться неизменяемым и формировать целостную концепцию.
-
- 0
- 0
Создание доменных моделей — хорошая возможность приобрести глубокие знания о предметной области.
-
- 0
- 0
Данные, пересекающие семантическую границу, представляют особый интерес с точки зрения безопасности, так как в ходе этого процесса может неявно измениться значение термина, что чревато появлением уязвимостей.
-
- 0
- 0
Доменная модель — это не просто упрощенная версия реальности: недостаток деталей компенсируется дополнительной строгостью.
-
- 0
- 0
Модель — это упрощенная версия реальности, которую мы все же можем воспринимать как корректное представление реальной вещи.
-
- 0
- 0
Модель — это упрощенная версия реальности, из которой убрано все то, что вам не нужно.
-
- 0
- 0
Дефект безопасности в виде нарушенной бизнес-целостности может существовать в промышленной среде на протяжении длительного времени, вызывая финансовые потери.
-
- 0
- 0
В ходе моделирования не забудьте обсудить верхние пределы — это всегда позволяет получить интересную информацию.
-
- 0
- 0
использование неограниченных строк для названия книги и ISBN дает слишком большой простор для злоупотреблений.
-
- 0
- 0
простая вещь — представление количества с помощью обычного целого числа — может вызвать серьезные проблемы с безопасностью.
-
- 0
- 0
С подозрением относитесь к моделированию, которое заканчивается словами «это целое число»!
-
- 0
- 0
Никогда ни в коем случае не представляйте деньги в виде числа с плавающей запятой!
-
- 0
- 0
Один из аспектов безопасности относится к целостности данных: это означает, что данные не должны меняться или генерироваться несанкционированным образом.
-
- 0
- 0
Согласно закону Постела и шаблону проектирования Tolerant Reader, когда системы взаимодействуют между собой, реализация приема данных должна быть либеральной, а реализация их отправки — консервативной15.
-
- 0
- 0
основное назначение инвариантов состоит не в защите имени пользователя от внедрения вредоносного кода, а скорее в передаче допустимого значения имени пользователя.
-
- 0
- 0
Проблемы с безопасностью принято считать страшными и сложными, но если поставить во главу угла проектирование, сложность внезапно исчезает. Это в основном объясняется тем, что грань между обычными программными дефектами и ошибками безопасности стирается, если уделять внимание предметной области, а не выбору контрмер
-
- 0
- 0
Многим разработчикам сложно разобраться во всех деталях замысловатых уязвимостей, поэтому они относят себя к категории профессионалов, которые не занимаются безопасностью. Безопасность — это не их прерогатива. Однако большинство разработчиков понимают и ценят проектирование, и если с его помощью можно обеспечить безопасность, то оказывается, что создавать безопасное ПО может каждый.
-
- 0
- 0
Мы считаем, что, если основное внимание при разработке уделяется проектированию, безопасность может превратиться из навязанного требования в естественный аспект этого процесса. Мы также убеждены, что это позволяет не только преодолеть многие недостатки традиционного подхода или избежать их, но и получить определенные преимущества.
-
- 0
- 0
Четкая сосредоточенность на проектировании позволяет писать более безопасный код в сравнении с традиционным подходом к безопасности программного обеспечения.
-
- 0
- 0
спросить у своих специалистов в предметной области о значении имени пользователя в контексте текущего приложения (рис. 1.4).
Обсудив этот вопрос, вы приходите к выводу о том, что имя пользователя должно содержать только символы [A-Za-z0-9_-] и иметь длину от 4 до 40 символов. Это продиктовано тем, что считается нормальным именем пользователя в создаваемом приложении. Вы исключаете символы < и > не потому, что они могут быть частью XSS-атаки в случае, если имя пользователя выводится в браузере. Скорее, отвечаете на вопрос: «Как должно выглядеть имя пользователя в этом контексте?» В
-
- 0
- 0
Проектирование — это руководящий принцип, по которому создается система, и применять его можно на всех уровнях, от кода до архитектуры. К нему относится любой вид деятельности, требующий сознательного принятия решений.
-
- 0
- 0
Позже к этим трем факторам присоединился еще один: отслеживаемость (traceability, T) — это необходимость знать, кто и когда получал доступ к данным или изменял их.
-
- 0
- 0
В классической информационной безопасности обычно выделяют три основных требования: конфиденциальность, целостность и доступность (confidentiality, integrity, availability — CIA).
-
- 0
- 0
Смысл желания пользователя был не в наличии элемента безопасности, а в удовлетворении определенного требования — в данном случае конфиденциальности (скрытом хранении). При реализации этой истории важно было понимать, что изменения кода, относящегося только к одному способу доступа к изображениям, недостаточно. Защитить необходимо все пути доступа,
-
- 0
- 0
Чтобы получить настоящую безопасность, необходимо перестать думать о ней как о наборе возможностей. Безопасность следует воспринимать как требование, охватывающее разные функции
-
- 0
- 0
Мы считаем, что для эффективной и легкой разработки безопасных программ необходим образ мышления, который вам может быть не свойственен и в котором акцент делается не на безопасности, а скорее на проектировании.
-
- 0
- 0