Всегда есть выбор между юзабилити и безопасностью. Чем больше функций безопасности вы реализуете, тем сложнее становится их использовать.
можем ли мы размещать приложения в GAE (appspot.com) с помощью https?
Да, но не на вашем собственном домене, а только на appspot.com. Если вы обслуживаете свое приложение вне собственного домена, вы должны направлять весь безопасный трафик через домен appspot вашего приложения (в вашем собственном домене вам придется купить сертификат SSL, и вам потребуется выделенный IP-адрес и т. Д.). Если вам действительно нужно, есть способы маршрутизации трафика SSL через ваш собственный домен, но поскольку для этого требуется другой сервер, на котором выполняется что-то вроде stunnel, это дает злоумышленникам еще одну цель атаки.
Если ваше приложение имеет аутентификацию по имени пользователя / паролю, приложение действительно настолько же безопасно, насколько безопасно хранить его пароль, если в вашем коде нет ошибок, которые могли бы быть использованы. О «хакерском пути»: в GAE вам не нужно заботиться о безопасности сервера, единственная возможная цель атаки - ваш код.
Вот несколько стратегий защиты вашего приложения:
- хороший QA и обзор кода для поиска критических ошибок; Django уже имеет встроенную защиту от большинства тривиальных атак, таких как XSRF и SQL-инъекция, поэтому обратите внимание на части вашего собственного кода, которые связаны с критическими данными и аутентификацией
- Подумайте о других методах аутентификации, таких как сертификаты на стороне клиента (они просты в использовании для конечного пользователя, большинство браузеров поддерживают эту нативную версию, а современные операционные системы имеют хранилище сертификатов; вероятно, это не легко сделать в GAE)
- слабым местом каждого защищенного окружения является пользователь, поэтому вы должны информировать пользователей о передовых методах обработки конфиденциальных данных и паролей (кстати, требование смены пароля каждые несколько месяцев вообще не повышает безопасность, так как это обычно приводит к пользователи записывают свои пароли, поскольку они не могут их запомнить, вы теряете больше безопасности, чем получаете)
- у вас должно быть хорошее обнаружение вторжения, чтобы как можно скорее заблокировать злоумышленника, как, например, анализ поведения; Пример: если пользователь из США входит в систему с IP-адреса в Эстонии, это подозрительно
- ограничения доступа к сети: вы можете заблокировать все диапазоны IP-адресов, кроме вашего предприятия, для доступа к критически важным данным; в случае утечки пароля это сводит к минимуму возможное влияние
- повышение безопасности конечного пользователя: если у одного из пользователей есть троян на своем компьютере, который делает снимки экрана или блокировку клавиатуры, вся ваша безопасность теряется, поскольку злоумышленник может просто наблюдать за пользователем, пока он просматривает конфиденциальные данные; на вашем предприятии должна быть хорошая полиция безопасности
- заставляет пользователей обращаться к вашему сайту через SSL, вы не должны позволять пользователям выбирать, предпочитают ли они безопасность или комфорт, а не