Зрозумійте загальні принципи безпеки (цілісність, автентичність, повноваження), а потім прочитайте кілька книг про те, як люди підривали ці стовпи безпеки тисячоліттями, і ви будете приблизно на півдорозі.
Потім прочитайте кілька хороших книг про стратегії проектування та тестування, і ви дізнаєтесь, як спроектувати достовірність своєї архітектури.
Тепер ми доходимо до того, коли я думаю про безпеку. Я замислююся над тим, як я можу перевірити джерело даних, чи не має значення, якщо вони підроблені, хто є джерелом даних, наскільки я впевнений у цьому? як це можна було змінити тощо ...
Це впливає на дизайн. У файлах конфігурації можуть бути зашифровані ключові розділи, або окремі поля можуть бути в чистому тексті із пов'язаним полем підпису. З послугами, що стоять перед Інтернетом, все стає складніше, тому що слід очікувати більшого рівня ворожнечі.
Потім на тестуванні, як ви протестуєте все це. Які ваші максимальні дані, що відбувається, якщо ви висунете програмне забезпечення за ці межі, як це обробляти? Що він довіряє? як можна підробити цю довіру?