| CG ( @ 2008-10-27 20:31:00 |
| Entry tags: | development, ifyoudontknow |
10 web security don't
Чего нельзя делать в системе безопасности онлайн-ресурса
10. Нельзя: доверять сторонним системам авторизации как своей собственной (родной для сервиса). OpenID, LiveID – лесом; исключение только если пользователь сознательно закрепил соответствие профилей и доверяет обоим;
9. Нельзя: разрешать для public менять собственный пароль без ввода предыдущего – даже с валидной сессией. Существует N+1 способов подменить сессию, особенно если они раздаются кому попало;
8. Нельзя: делать сессию неустаревающей. Нет, ну если у вас кейс требует таймаута в операциях в неделю – тогда пожалуйста; в остальных случаях это очередная дырень;
7. Нельзя: сознательно укорачивать длину пароля. Ну какая тебе разница, 16 у меня символов пароль, или 25? Особенно актуально с использованием аппаратных кей-генераторов.
6. Нельзя: выдавать пароли обратно в html-форму при «подтверждении данных». Звездочки – звездочками, а ничего, что он в коде открытый лежит?
5. Нельзя: ставить требования к «контрольному вопросу» ниже, чем к паролям; и особенно - подсказывать вопросы из общеизвестных данных. 95% юзеров туда «4 цифры ИНН» и вобьют;
4. Нельзя: генерить ссылки с ID сессии. Всё, хватит, это было актуально 10 лет назад;
3. Нельзя: удалять профиль пользователя с освобождением его маркера в системе. Не только из требований целостности данных, но и с точки зрения технической/социальной подмены маркера в задачах безопасности;
2. Нельзя: по запуску «вспоминалки пароля» без вопросов заменять хранимые данные случайными. Элементарно заблокировать аккаунт, раз в 5 минут дергая «вспоминалку»;
1. Нельзя: нельзя, я сказал! хранить пароли с обратимым шифрованием. Равно как и с хешем без вставки (salt) – кто ломал, меня поймет. Уже 10 лет про это и говорено, и написано, и хоть бы хрен..
Пусть это послужит референс-листом.