3

目前,我正在招聘一名 Web 开发人员,他将在一个处理信用卡的网站上工作。虽然他没有登录支付网关 UI 的凭据,但他可以访问 API 登录和交易密钥,因为它嵌入在应用程序的代码中。

我想了解与使用该信息可能造成的损害类型有关的所有“假设”情景。显然,他可以处理信用卡,但钱会进入网站所有者的银行账户,所以我不确定这会造成多大的损失。谁能想到任何其他可能的情况?

更新:正在使用的支付网关是 Authorize.net。

4

9 回答 9

5

他们真的需要访问您的生产站点吗?

不要将密钥存储在代码中、将其存储在生产数据库或生产服务器上的文件中。

于 2008-10-03T13:02:29.513 回答
3

这里有一些很好的答案,我只想补充一点,您可能会遇到 PCI 问题。
PCI-DSS 特别规定了职责分离、生产环境与开发/测试的隔离、保护加密密钥免受任何不需要它的人的影响,等等。正如@Matthew Watson 所说,重新考虑这一点,不要向开发人员授予生产访问权限。

顺便说一句,如果他可以直接访问 API,您如何确保“钱进入网站所有者的银行账户”?更不用说访问所有信用卡数据了......

于 2008-10-05T01:15:25.587 回答
1

如果开发人员可以访问原始信用卡号码,这可能会成为一个更大的问题,因为您的网站可能与欺诈活动相关联,假设开发人员是一个坏苹果。(他们可以将帐号、CCV、到期日期重定向到另一个站点,尽管这应该可以通过网络工具和全面的代码审查来发现。)

API 是否执行“$1.00”收费(或“$X.XX”)来验证信用卡是否可以收取一定金额(从而将结果返回给调用者,例如“yes”或“no”) ? 如果是这样,它可用于自动验证在 Internet 上交易的信用卡帐号,滥用此类系统可能会导致您反悔。

于 2008-10-03T12:55:24.800 回答
1

对于我使用过的任何网关,支付处理器都会将 API 密钥与商家网站的特定 IP 或 IP 范围相关联。话虽如此,除非有问题的恶意(?)代码与商家在同一台服务器上执行 - 在这方面不应该有任何安全问题。

如果您的商家网站不是这种情况,请联系他们并询问这是否可行。

于 2008-10-03T12:55:42.210 回答
1

支付网关是否允许冲销费用?如果是这样,则可能会发生许多骗局。

于 2008-10-03T12:56:01.723 回答
1

网站是否处理退款?将来会不会?

如果我们谈论的是恶意使用,那么如果进行了大量未经授权的购买,网站所有者可能会受到调查。如果对所有者进行调查,这对有何影响?

于 2008-10-03T12:56:04.890 回答
0

根据您的描述,该开发人员似乎可以访问客户卡的详细信息,在这种情况下,客户的隐私可能会受到损害。您可以考虑适当地措辞合同以确保涵盖该角度。

然而,主要的一点是,如果你正在处理一个敏感的项目/信息,你最好找到你可以信任的人。聘请一家软件公司来完成这项工作可能会在以后为您节省一些睡眠时间。

于 2008-10-03T12:56:53.160 回答
0

首先,最好不要以纯文本形式存储此类信息。通常人们将其视为信用卡号码的二手知识(遗憾的是,仅出于法律原因),但您不希望其他人查看数据库/源代码访问权限的任何类型的私人数据都应加密。您应该将帐户信息以加密良好的格式存储在某处,并且您应该为您的开发人员提供一个测试帐户,以便在他们的开发工作站上使用。这样,即使是加密信息,也只有拥有服务器访问权限的人才能看到。

这样,您可以在开发人员的工作站上拥有一个数据库,并将测试帐户的 API 信息存储(希望加密)在其本地数据库中,但是当代码镜像到生产服务器时,它仍将使用存储在其上的实时、真实网关信息生产服务器的数据库,无需额外的代码/配置。

话虽如此,我认为具有 API 身份验证细节的程序员不能做太多事情。无论哪种方式,都不值得冒险——在我看来。

希望这有帮助。

PS:如果确实发生了不好的事情,在您采取预防措施以确保它不会再次发生之后,您可以随时在 authorize.net 的 Web 界面中生成一个新密钥。

于 2009-11-27T13:51:06.233 回答
0

在 Authorize.Net 的特定情况下,他们将无法对自己的信用卡进行信用,因为 Authorize.Net 仅允许对过去六个月内通过他们执行的交易进行此操作。如果您被授予未关联退款的例外情况,则允许的唯一例外情况。如果您为此签署了适当的文书,并且有人拥有您的 API 登录名和交易密钥,则可以处理他们自己信用卡的信用。你抓住这一点的唯一方法是仔细监控你的陈述。

为了帮助缓解这种情况,您应该在他们为您执行的工作完成后立即更改您的事务密钥。这将使他们拥有的密钥在 24 小时后失效。

于 2011-12-28T20:56:37.650 回答