У ceejayoz есть лучший ответ, чтобы предотвратить специально упомянутую атаку здесь, но я хочу также указать, чего не хватает многим здесь людям, в основном то, что HTTP уже выяснил другую часть. Вы хотите сделать постоянное перенаправление 301. Это говорит клиенту делать дальнейшие запросы на новый адрес. Так что да, если кто-то введет неправильный URL-адрес, он сделает 2 запроса, НО, в будущем хороший клиент должен обнаруживать запросы на этот URL-адрес и вместо этого делать правильный запрос, чтобы предотвратить больше ненужных запросов. Проблема в том, что это только для этого точного URL. HSTS улучшает эту схему, также говоря: «в течение следующих n секунд также не разрешайте никаких незащищенных соединений из этого домена».
Пользователи не должны посещать конфиденциальные сайты в небезопасных местах. Они особенно не должны подписываться на них в небезопасных местах. Это основные принципы безопасности пользователей, которым нужно учить так же, как «не открывайте вложения из ненадежных источников». Это действительно лучший ответ для предотвращения атак MiM для сайтов, которые никогда не посещались.
Как примечание, некоторые браузеры улучшают это, также говоря, что некоторые известные сайты всегда используют HSTS. К сожалению, вы не можете просто добавить себя в этот список легко.
Дополнительное чтение:
http://coderrr.wordpress.com/2010/12/27/canonical-redirect-pitfalls-with-http-strict-transport-security-and-some-solutions/
http://dev.chromium.org/sts