Эти пункты не относятся только к Coldfusion, но я чувствую, что должен заявить о них:
- Выполнить хеширование на стороне сервера.
Смысл хеширования состоит в том, чтобы действительно трудно было определить, что отправить серверу, чтобы получить строку, совпадающую с БД.Если вы просто сопоставите строку, заданную клиентом, с записью в БД, вы победите цель.
Он сломан.Есть способы победить это.Не используйте его.
- Если вы беспокоитесь о том, что пароль будет предоставлен на пути к серверу, используйте TLS.
TLS предназначен для обмена данными.между клиентом и сервером непрозрачен для кого-либо еще.Самая большая проблема с ним - недавняя атака BEAST, которая не будет работать, если вы правильно ее реализуете.
- Используйте безопасный хеш, такой как SHA-256.
AsНасколько нам известно, SHA-256 чертовски безопасен.Самая известная атака на нее уменьшает временную сложность на 2 бита, что не делает атаку практичной.
- Используйте случайную соль, уникальную для каждого пользователя.
Предварительно вычисленная радужная таблица для 2 ^ 50-битного пространства заняла бы 256 петабайт памяти, а одна для 2 ^ 256 пространства заняла бы намного больше.Однако из-за проблемы с днем рождения возможно, что некоторые учетные записи ваших пользователей могут быть скомпрометированы, если вы не засолите их хэши.
- Хешируйте несколько раз.Порядка тысяч раз.
Если ваша БД взломана, хеш может означать, что пароль вашего среднего пользователя будет найден в годах.Если у вас тысячи раз, это будет означать тысячи лет.
Некоторые дополнительные моменты, направленные на устранение заблуждений, похоже, что у вас есть:
- Криптографический хеш - односторонний.Вы не можете расшифровать это.Если вы найдете практический способ расшифровки, вы станете богатыми и (не) знаменитыми.
- Стандартный HTTP небезопасен.Любой может подслушать и перехватить ваш пароль, который отправляется в виде открытого текста или хэшируется.Если ваш сервер не требует зашифрованного соединения для конфиденциальных данных, вы запрашиваете повторную атаку (http://en.wikipedia.org/wiki/Replay_attack).
- . Вы можете создать свой собственный сертификат SSL. Если вы беспокоитесь, что ваши пользователи увидят этот сертификат SSL,Я сам подписан! О, нет! »и, будучи напуганным, либо обойтись без риска, либо кашлянуть наличными.