需要将一些 CC 数据从 View 提交到将要处理的控制器,我可以只发布它还是有一些常见的方法来保护传输中的数据?
3 回答
使用SSL发布数据。
像提到的 Rex M 那样使用 SSL 发布绝对是第一步。您可能也应该将他们输入信用卡号的页面设为 SSL。这将为您的用户提供舒适的绿色 URL。
您还应该包括针对CSRF攻击的保护。使用防伪令牌。
此外,您应该使用PRG(发布、重定向、获取)模式来确保信用卡号不会提交两次。发布后,不要只是呈现不同的视图,发送重定向,以便他们的浏览器对另一个 URL 执行 GET - 可能是您的确认页面。
您会遇到一些 ASP.NET MVC 特定的事情:
如果您有一些 http 页面和一些 https 页面,您将如何编码从 http 页面到 https 页面的链接。您可以对它们进行硬编码,但您必须对域和协议进行硬编码。您不能只使用 <%= Html.ActionLink(... 有关更多详细信息,请参阅此SO 问题。
当您不使用 SSL 时,您需要确保无法访问您的控制器。这将帮助您捕获任何错误,并确保没有人使用 http 而不是 https。请参阅期货程序集中的 [RequireSsl] 属性。这是来自Adam Salvo的博客文章
我还没有读过关于 ASP.net-MVC 的实现。但是,我相信您混淆了术语。
MVC 模式将在服务器端进行评估。[所以组件之间几乎不需要做安全检查(除非它们暴露在程序之外)]
我相信很多人的印象是您在提交表单后谈论的是 HTTP POSTS(而不是 HTTP GETs)