将信用卡数据从视图发布到控制器是不是安全?

Posted

技术标签:

【中文标题】将信用卡数据从视图发布到控制器是不是安全?【英文标题】:Is it secure to POST Credit Card data from View to Controller?将信用卡数据从视图发布到控制器是否安全? 【发布时间】:2010-12-02 12:19:51 【问题描述】:

需要将一些 CC 数据从 View 提交到将要处理的 Controller,我可以只 POST 还是有一些常见的方法来保护传输中的数据?

【问题讨论】:

【参考方案1】:

像提到的 Rex M 那样使用 SSL 发布绝对是第一步。您可能也应该将他们输入信用卡号的页面设为 SSL。这将为您的用户提供舒适的绿色 URL。

您还应该包括针对CSRF 攻击的保护。使用防伪令牌。

此外,您应该使用PRG (Post, Redirect, Get) pattern 确保信用卡号不会提交两次。发布后,不要只是呈现不同的视图,发送重定向,以便他们的浏览器对另一个 URL 执行 GET - 可能是您的确认页面。

您会遇到一些 ASP.NET MVC 特定的事情:

    如果您有一些 http 页面和一些 https 页面,您将如何编码从 http 页面到 https 页面的链接。您可以对它们进行硬编码,但您必须对域和协议进行硬编码。您不能只使用 SO question。

    您需要确保在不使用 SSL 时无法访问控制器。这将帮助您捕获任何错误,并确保没有人使用 http 而不是 https。请参阅期货程序集中的 [RequireSsl] 属性。这是来自 Adam Salvo

    的一篇关于它的博客文章

【讨论】:

【参考方案2】:

我还没有读到关于 ASP.net-MVC 的实现。但是,我相信您混淆了术语。

MVC 模式将在服务器端进行评估。 [所以组件之间几乎不需要做安全检查(除非它们暴露在程序之外)]

我相信很多人的印象是您在提交表单后谈论的是 HTTP POST(而不是 HTTP GET)

【讨论】:

【参考方案3】:

使用SSL 发布数据。

这是good resource on setting up SSL with IIS and ASP.NET。

【讨论】:

这只是意味着在我要发布到的 url 中指定 https://(假设 SSL 证书安装在 IIS 上) @Ryan 您也应该在 https 下加载表单,并以相同的协议发布。 @Ryan - HTTP 是一个明文协议......你对它所做的一切都可以在它通过互联网的任何节点被拦截。 HTTPS 是唯一安全的解决方案。 请注意,这是独立于 MVC 的!发布敏感数据时始终使用 SSL - 并且仅在必要时发布敏感数据!

以上是关于将信用卡数据从视图发布到控制器是不是安全?的主要内容,如果未能解决你的问题,请参考以下文章

拥有信用卡模型是不是安全?

如何在 PHP 中的页面之间安全地传递信用卡信息

将信用卡详细信息存储到mysql数据库中[重复]

在安卓上存储信用卡信息是不是安全?

贝宝集成后端?

Omnipay-Stripe 将信用卡详细信息从表单存储到数据库