RequireHttpsAttribute и зашифрованные данные запроса

У меня есть действие контроллера, которое принимает конфиденциальные данные.

public ActionResult TakeSensitiveData(SensitiveData data){
 data.SaveSomewhere();
}

Чтобы обеспечить безопасность данных, я хочу, чтобы определенные запросы выполнялись с использованием HTTPS (SSLv3, TLS 1). Одним из подходов, которые я рассматривал, был RequireHttpsAttribute в моем действии:

[RequireHttps]  
public ActionResult TakeSensitiveData(SensitiveData data){
     data.SaveSomewhere();
}

Однако при тестировании этого скрипта я обнаружил, что HTTP-запрос, сделанный для действия, 302 перенаправляется на HTTPS. Мой вопрос таков:

Если я сделал запрос с перенаправлением 302 на HTTPS, разве я уже не отправил конфиденциальные данные по HTTP до перенаправления?


person goatshepard    schedule 23.10.2012    source источник
comment
Хуже: насколько я понимаю, вы даже не получите данные в запросе https. Ваше действие должно было быть https в первую очередь.   -  person Grimace of Despair    schedule 24.10.2012


Ответы (1)


Вам нужно публиковать данные непосредственно на HTTPS.

Примечание. Если у вас есть конфиденциальные данные, вы все равно должны вводить их на странице HTTPS. Таким образом, обратная отправка будет HTTPS (или вы получите неприятное предупреждение от Firefox о публикации данных HTTPS в HTTP).

person Alexei Levenkov    schedule 23.10.2012