Безопасность
Пользователи ценят безопасность среды OS X, и они ожидают, что их приложения будут одинаково безопасны. При использовании в своих интересах технологий безопасности OS X можно хранить секретную информацию локально, авторизовать пользователя для определенных операций или транспортировать информацию надежно через сеть.
Помните следующие инструкции, когда Ваше приложение должно будет работать с уязвимой информацией или выполнить задачи в безопасной среде.
Факторизуйте код, требующий привилегированного доступа в отдельный процесс. Факторинг изолирует безопасный код от незащищенного кода и упрощает проверять, что никакие операции жулика не происходят, который мог нанести ущерб, или преднамеренно или непреднамеренно.
Избегите хранить пароли и секреты в файлах простого текста. Даже при ограничении доступа к файлу с помощью полномочий файла уязвимая информация намного более безопасна в цепочке для ключей.
Избегите изобретать свои собственные схемы аутентификации. Если Вы хотите, чтобы работа клиент-сервер была безопасна, используйте авторизацию APIs для гарантии идентификационных данных клиента.
Опасайтесь кода, который Вы загружаете или вызываете от привилегированного кода. Например, необходимо избежать загружать плагины из привилегированного кода, потому что плагины получают те же полномочия как родительский процесс. Необходимо также избежать вызывать потенциально опасные функции, такой как system
или popen
, от привилегированного кода.
Избегите делать несоответствующие предположения. Например, Вы не должны предполагать, что зарегистрирован только один пользователь. Из-за быстрого переключения между пользователями многочисленные пользователи могут быть активными в той же системе (для получения дополнительной информации, посмотрите, что Многопользовательская Среда Программирует Темы). Кроме того, Вы не должны предполагать, что цепочки для ключей всегда сохранены как файлы.
Когда выполнимо, избегите полагаться исключительно на пароли для аутентификации. Будьте подготовлены использовать в своих интересах другие технологии, такие как смарт-карты или биометрические устройства.
Используйте Keychain Services, чтобы хранить уязвимую информацию, такую как номера кредитных карт и пароли. Механизм цепочки для ключей в OS X предоставляет следующие преимущества:
Это предоставляет безопасный, предсказуемый, непротиворечивый опыт пользователям при контакте с их частной информацией.
Пользователи могут изменить настройки для всех их паролей как группа или создать отдельные цепочки для ключей для различных действий с каждой цепочкой для ключей, имеющей ее собственные настройки активации. (По умолчанию пароли изменяются как группа.)
Приложение Доступа Цепочки для ключей обеспечивает простой UI для управления цепочками для ключей и их настройками, освобождая Вас от этой задачи.
Чтобы начать узнавать о безопасности в OS X, см. Обзор безопасности.