8
голосов
10ответов
5336 просмотров

Defensive Programming: Guidelines in Java

I’m from a .NET background and now dabbling in Java. Currently, I’m having big problems designing an API defensively against faulty input. Let’s say I’ve got the following code (close enough): public void setTokens(Node node, int newTokens) { tokens.put(node, newTokens); } However, this c...

3
голосов
3ответов
548 просмотров

Defensive programming against malicious attacks

The company that I work for is redeveloping an in-house product for external use. The product will initially be developed in C# using WPF, then ported to Silverlight. One of the focus points is coding against malicious attacks e.g. SQL injection etc. Questions: Can anyone recommend URLs poin...

42
голосов
12ответов
7902 просмотров

0xDEADBEEF equivalent for 64-bit development?

For C++ development for 32-bit systems (be it Linux, Mac OS or Windows, PowerPC or x86) I have initialised pointers that would otherwise be undefined (e.g. they can not immediately get a proper value) like so: int *pInt = reinterpret_cast<int *>(0xDEADBEEF); (To save typing and being ...

1
голосов
2ответов
295 просмотров

CLR: если конструктор не работает, всегда ли он генерирует исключение?

В Delphi, если во время создания объекта возникло исключение: вся выделенная память будет освобождена, и будет создано исключение. Например, следующее было guaranteed , чтобы либо вернуть действительный объект Camera , либо вызвать исключение: Camera c = new Camera(); Вам никогда не пр...

38
голосов
14ответов
2511 просмотров

Насколько оборонительно я должен программировать?

Я работал с небольшой процедурой, которая используется для создания соединения с базой данных: До public DbConnection GetConnection(String connectionName) { ConnectionStringSettings cs= ConfigurationManager.ConnectionStrings[connectionName]; DbProviderFactory factory = DbProviderFact...

6
голосов
6ответов
1405 просмотров

Нарушает ли защитное программирование принцип DRY?

Заявление об ограничении ответственности: в настоящее время я учусь программированию. Никогда не участвовал в проектах и ​​не писал ничего длиннее ~ 500 строк. У меня вопрос: нарушает ли защитное программирование принцип «Не повторяйся»? Если предположить, что мое определение защитного програ...

8
голосов
8ответов
5045 просмотров

Действительно ли clone () когда-либо использовался? А как насчет защитного копирования в геттерах / сеттерах?

Используют ли когда-нибудь защитные геттеры / сеттеры? Для меня в 99% случаев вы предполагаете, что объект, который вы установили в другом объекте, должен быть копией той же ссылки на объект, и вы хотите, чтобы изменения, которые вы вносите в него, также вносились в объект, в котором он был уста...

33
голосов
9ответов
25997 просмотров

Как скрыть строки в exe или dll?

Я обнаружил, что можно извлечь жестко запрограммированные строки из двоичного файла. Например, в представлении свойств Process Explorer отображается вся строка с более чем 3 символа. Вот код простого исполняемого файла, который я написал, чтобы просто протестировать его: #ifndef _WIN32_...

13
голосов
15ответов
1446 просмотров

Насколько «защитным» должен быть мой код?

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

2
голосов
8ответов
1370 просмотров

Добавление элементов в список <t> / защитное программирование</t>

Явная проверка / обработка того, что вы не достигли максимального количества записей 2 ^ 31-1 (?) при добавлении в список C # - это безумие, правда или ложь? (Предполагается, что это приложение, в котором средний размер списка меньше 100)

1
голосов
1ответов
466 просмотров

Основные проблемы безопасности при разрешении пользователям встраивать видео

Я хочу разрешить пользователям свободно встраивать видео в разрабатываемое приложение, но не хочу подвергать это приложение злонамеренному использованию. Имея это в виду, каковы основные проблемы безопасности (XSS и т. д.), позволяющие пользователям встраивать видео из внешних источников, так...

0
голосов
3ответов
539 просмотров

Пользовательский конструктор копирования и добавление поля

Дубликат это . В C ++ иногда приходится самостоятельно реализовывать конструктор копирования (обычно при наличии указателя в качестве члена). Конструктор копирования, созданный компилятором, имеет тот недостаток, что когда вы добавляете поле члена и забываете добавить строку копирования в ...

0
голосов
3ответов
333 просмотров

Как предотвратить добавление выбросов в базу данных?

У меня есть база данных MS SQL, содержащая набор таблиц, каждая таблица представляет собой набор переменных, рассчитанных на основе наших формул. Все переменные являются числовыми с предопределенной точностью (мы используем числовой тип данных, где n.m как n цифр для целой части и m цифр для дро...

6
голосов
7ответов
515 просмотров

атаки веб-приложений и должны иметь методы защиты

Какие у вас должны быть методы защиты от распространенных веб-атак, таких как XSS , Sql Injection , Denial of Service и т. д.? Изменить: я собрал ваши ответы по описанию из Википедии . И я добавляю несколько дополнительных вопросов, чтобы получить полную справку. Внедрение SQL ...

8
голосов
2ответов
789 просмотров

Шаблоны редактора для защитного программирования

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

5
голосов
2ответов
335 просмотров

Как вы управляете внешними зависимостями вашего приложения?

Есть много типов внешних зависимостей. Взаимодействие с внешними приложениями, компонентами или службами (например, Outlook для отправки электронной почты, TWAIN или WIA для сканирования, объекты ActiveX и веб-службы для различных целей и т. Д.). Какова ваша стратегия обеспечения надежности в...

32
голосов
12ответов
10991 просмотров

Является ли упаковка всего в блоки try / catch защитным программированием?

Я занимаюсь программированием последние 3 года. Когда я программирую, я использую для обработки всех известных исключений и изящного предупреждения пользователя. Недавно я видел код, в котором почти все методы заключены в блоки try / catch. Автор говорит, что это часть защитного программирования...

1
голосов
7ответов
209 просмотров

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

Например, удаление выходного файла во время выполнения, направление двух экземпляров SW на один и тот же ввод-вывод и т. д.?

223
голосов
20ответов
55959 просмотров

Когда мне следует использовать Debug.Assert ()?

Я работаю профессиональным инженером-программистом около года, получив диплом специалиста по информатике. Некоторое время я знал об утверждениях в C ++ и C, но до недавнего времени понятия не имел, что они существуют в C # и .NET. Наш производственный код не содержит никаких утверждений, и у ...

12
голосов
9ответов
1429 просмотров

Тестовые примеры И утверждения утверждений

Код в этом вопросе заставил меня задуматься assert(value&gt;0); //Precondition if (value&gt;0) { //Doit } Я никогда не пишу оператор if. Утверждения достаточно / все, что вы можете сделать. «Сбои рано, сбои часто» CodeComplete утверждает: Оператор assert делает приложение п...

5
голосов
9ответов
993 просмотров

Как я могу программировать на Ruby защитно?

Вот прекрасный пример проблемы: Гем классификатора не работает в Rails . ** Исходный вопрос: ** Меня как специалиста по безопасности беспокоит то, что Ruby не имеет аналогов в отношении конфиденциальности пакетов Java. То есть это недопустимый Ruby: public module Foo public module Ba...

17
голосов
9ответов
1886 просмотров

Контрольный список уязвимостей программирования веб-сайтов

Наблюдение за тем, как SO выходит в сеть, было для меня настоящим образованием. Я хотел бы составить контрольный список различных уязвимостей и эксплойтов, используемых против веб-сайтов, и какие методы программирования можно использовать для защиты от них. Какие категории возможностей? с...

9
голосов
5ответов
1283 просмотров

Тестовые примеры VS Заявление ASSERTION

В большинстве своих проектов на C ++ я часто использовал инструкцию ASSERTION, как показано ниже: int doWonderfulThings(const int* fantasticData) { ASSERT(fantasticData); if(!fantasticData) return -1; // ,,, return WOW_VALUE; } Но сообществу TDD нравится делать что...

11
голосов
14ответов
2088 просмотров

Защитное программирование

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