将信用卡数据传递给控制器
Posted
技术标签:
【中文标题】将信用卡数据传递给控制器【英文标题】:Passing Credit Card Data To Controller 【发布时间】:2015-12-12 01:59:26 【问题描述】:在我的项目中,我需要记下客户的信用卡号码,以备将来付款之用,并将其存储起来。
当传递给将要存储数据的控制器操作时,如何确保在 MVC 视图中输入的数据的安全性?
我知道 SSL 是一项基本要求,但有没有我应该特别使用的方法?
请注意,我无法使用任何第三方处理器或任何其他方法。我有安全的卡片存储方法,因为我们正在从桌面应用程序过渡,但是我关心数据输入和控制器操作之间的安全性。
@using (html.BeginForm())
@Html.AntiForgeryToken()
<div class="form-group">
@Html.LabelFor(p => newPayment.cardnumber, htmlAttributes: new @class = "control-label col-md-2" )
<div class="col-md-10">
@Html.EditorFor(p => newPayment.cardnumber, new htmlAttributes = new @class = "form-control" )
@Html.ValidationMessageFor(p => newPayment.cardnumber, "", new @class = "text-danger" )
</div>
</div>
【问题讨论】:
请注意,与使用的技术无关,并且取决于外部业务/法律因素,您可能还需要检查 PCI 合规性,特别是如果您将卡号保留在某种持久性存储中。 除非您真的需要,否则我会避免存储信用卡数据。 这是一个广泛而复杂的主题,但正如旁注一样,SSL 会在传输过程中加密数据,它并不能帮助您将数据安全地存储在数据库中。如果您还没有,请查看Troy Hunt's blog。 如果您存储这种性质的重要信息,我还建议对这些存储值使用某种加扰算法或加密。如果您以纯文本形式存储,没有人会希望他们的信息受到损害 PayPal 和 Authorize.Net 让您可以安全地存储客户的信用卡信息。如果你想为卡充值,只需使用 ID(或令牌)即可。想想两个词 - HomeDepot 和 Target。 【参考方案1】:使用 Stripe 付款。 Stripe 会为您存储所有敏感数据,并为您提供访问令牌。
【讨论】:
以上是关于将信用卡数据传递给控制器的主要内容,如果未能解决你的问题,请参考以下文章
如何将数据传递给嵌套控制器(UIContainerView)?
如何在将数据推送到导航堆栈之前将数据传递给视图控制器并加载它?