|
Основные положения по разработке ПО
Общие рекомендации по написанию устойчиво работающих алгоритмов
(необходимое, но не достаточное условие их информационной безопасности):
- не используйте экзотические и недокументированные возможности языка
программирования : Вы не уверены в том, как они реализуются на самом деле
- оформляйте исходный текст ясно и четко, используйте необходимые комментарии
- используйте скобки для явного указания порядка операций : компилятор может
оптимизировать выполнение выражений и начать, скажем, сложение
F(1)+F(2)+F(3) со
второго знака "+", тем самым вызвав сначала
функцию F от 2, затем от 3, а только
затем от 1 если в функции изменяются какие-либо глобальные переменные это
может привести к непредсказумым последствиям
- при всех удобных случаях используйте передачу параметров функции в качестве
аргументов, а не в глобальных переменных
- используйте структурное программирование :
разбивайте сложные блоки кода
на процедуры с ясной структурой и легко контролируемым набором параметров
- никогда не программируйте недокументированные возможнности : технология
"reverse engineering" дизассемблирование и
обратная компиляция" на сегодняшний день достигла огромных результатов,
особенно в отношении высокоуровневых языков программирования
- закрывайте файлы сразу же по окончании работы с ними, а если Вы записываете
важную информацию в течение долгого времени периодически вызывайте
функции сброса файлового буфера на дисковый накопитель
- проверяйте свободное место на диске перед записью в файл : некоторые
операционные выдают ошибки при записи на переполненный диск нестандартным
образом, результат этого может быть плачевным
- блокируйте файлы и наборы данных, если Вы обращаетесь к ним по записи из
нескольких параллельно работающих процессов или программ
- старайтесь как можно сильнее сократить время записи в совместно
используемые файлы, а, следовательно, и время их блокирования
- не будьте заранее уверенными, что программа запущена из той директории,
где расположен ее исполнимый файл, одной из первых команд после запуска
программы явно смените каталог на желаемый
- при работе с внешними и сетевыми устройствами и дисками стройте циклы
ожидания таким образом, чтобы из них был возможен выход по истечении
определенного периода ожидания ответа тайм-аута
- очень тщательно разрабатывайте схему синхронизации паралелльно работающих
с одними и теми же данными процессов
- тщательно проверяйте алгоритмы на синдром
"мертвой петли" это
ситуация, когда процесс A, начав изменять объект
1 и заблокировав его в связи с этим, ожидает снятия блокирования с объекта 2,
в то время как процесс B, в то же
самое время начавший изменять объект 2 и заблокировав его, ожидает снятия
блокировки с объекта 1 подобная проблема при такой схеме синхронизации
теоретически неразрешима, единственный выход из нее рассматривать объекты
1 и 2 как единое целое с возможностью только совместной блокировки
- аккуратно выделяйте и очищайте объекты в динамической памяти
- при необходимости используйте криптографию
- никогда не передавайте пароль открытым текстом
- используйте криптостойкие алгоритмы шифрования и хеширования
- вычищайте блоки оперативной памяти после того как информация
(пароли, ключи, конфиденциальные данные), находившаяся в них, стала ненужной
- всегда проверяйте длины строк и массивов перед началом работы с ними
- встрайвайте в Ваши системы требование регистрации каждого оператора
с уникальным паролем и записью как можно большего количества информации
о сеансе в лог-файл, недоступный для изменения
операторам
- тщательно тестируйте Ваши приложения, в том числе на больших и неправильных
входных данных
Назад | Содержание
| Вперед
|
 |
 |
|
Новости мира IT:
- 02.02 - Apple задумала выпустить iPhone в формате «раскладушки»
- 02.02 - Соцсети вскоре столкнутся с массовыми набегами ИИ-агентов, предупредили учёные
- 02.02 - Обещанная Павлом Дуровым интеграция Grok c Telegram до сих пор не случилась и, похоже, уже никогда не случится
- 02.02 - Запустилась соцсеть Moltbook, где общаются только ИИ-агенты — людям разрешили только наблюдать
- 29.01 - Линус Торвальдс принял план передачи управления репозиторием ядра Linux в непредвиденных ситуациях
- 29.01 - ИИ-стартап Илона Маска xAI получит $2 млрд от Tesla до конца марта
- 29.01 - Бигтехи снова забрасывают OpenAI деньгами — Nvidia, Microsoft и Amazon обсуждают инвестиции на $60 млрд
- 29.01 - Samsung утроила квартальную прибыль до рекордных $14 млрд, но по итогам года впервые уступила SK hynix
- 29.01 - Google заплатит $135 млн за тайный сбор данных пользователей Android и больше не будет «шпионить» без спроса
- 26.01 - Представлен смартфон NexPhone, совмещающий Android, Debian и Windows
- 26.01 - Российская команда Parivision сенсационно выиграла первый крупный турнир года по Counter-Strike 2
- 26.01 - Стоимость акций Sandisk неожиданно взлетела на 1000 % всего за несколько месяцев
- 26.01 - Россияне столкнулись с массовым сбоем сервисов, позволявших обходить ограничения мобильного интернета
- 20.01 - Организация Open Quantum Design работает над проектом по созданию открытого квантового компьютера
- 20.01 - Роскомнадзор заявил об удвоении количества DDoS-атак в 2025 году
- 20.01 - В Яндекс Картах теперь можно делиться геопозицией с близкими
- 20.01 - OpenAI пообещала практический ИИ уже в этом году — и похвалилась выручкой в $20 млрд за прошлый
- 20.01 - Роскомнадзор разогнал блокировки на 59 % в прошлом году — под запрет попали 1,3 млн материалов
- 14.01 - Компания Anthropic выделила 1.5 млн долларов проекту Python
- 14.01 - Состоялся релиз Firefox 147
Архив новостей
|
 |
 |
 |
|
|
 |
 |
 |
|
|
|
 |
 |
|