MVC RequireHttps属性毫无价值?

Kev*_*Kev 2 security asp.net-mvc https custom-attributes razor

我要求允许用户通过我的asp.net MVC应用程序中的表单更改其密码.我的第一个想法是使用RequireHttps属性修饰ChangePassword操作.

但是,我仍然必须在属性启动之前发送未加密的密码并返回"所请求的资源只能通过SSL访问".这打败了目的,不是吗?

我确信我只是困惑而且RequireHttps很有用; 我想知道是否有办法使用RequireHttps来实现我的目标.或者,我想知道实现它的任何其他方式.

更新:

我现在有了一些选项,感谢下面的答案 - 我可以使用https在iframe中加载密码输入,这意味着来自它的任何帖子都将被加密.另外,我可以在构造post url的代码中将协议设置为https:

var url = '@Url.Action("changePassword", "Security", new { area = "" }, "https")'
Run Code Online (Sandbox Code Playgroud)

我不确定哪个更好,但我会尝试第二个 - 欢迎任何评论.

Lef*_*une 6

您的应用程序无法控制是否启用SSL.这仅取决于Web服务器配置.您唯一能做的就是确保您的应用程序不信任未通过线路加密的数据.RequireHttps就是这么做的.使用此属性修饰的操作永远不会处理以纯文本格式发送的数据.

  • 不只是数据,HTTP GET重定向到HTTPS GET,HTTP POST被拒绝。看到http://stackoverflow.com/a/9730131/502537 (2认同)