Security 我的信用卡页面安全吗?保障调查

Security 我的信用卡页面安全吗?保障调查,security,logic,checkout,Security,Logic,Checkout,https:xyz.com/authenticate/cc.php 这是我注册的第3页…我的会员在这里输入他们的信用卡。这已绑定到我的authorize.net帐户 我最近注意到的一件事是,只需键入URL,就可以单独访问此页面。。没有必要的预url指向它。这似乎不安全,但不管有人想滥用它,他们都可以通过注册过程不断提交不正确的抄送号码。。花我的钱,对吗 我不记得我们是否对它设定了知识产权限制,或者是否这是100%的保护措施。 我敢肯定,我们做了一些事情,如果他们用自己的号码(临时存储)输入mas

https:xyz.com/authenticate/cc.php

这是我注册的第3页…我的会员在这里输入他们的信用卡。这已绑定到我的authorize.net帐户

我最近注意到的一件事是,只需键入URL,就可以单独访问此页面。。没有必要的预url指向它。这似乎不安全,但不管有人想滥用它,他们都可以通过注册过程不断提交不正确的抄送号码。。花我的钱,对吗

我不记得我们是否对它设定了知识产权限制,或者是否这是100%的保护措施。 我敢肯定,我们做了一些事情,如果他们用自己的号码(临时存储)输入mastercard,并且它被发送回无效,它将与之匹配,并且不允许他们继续输入错误的16位数字。 我是否应该在没有特定页面允许访问和担心IP限制的情况下保持页面的可访问性?难道有人就不能一直切换他们的ip,并提交这个页面与不正确的抄送或伪造的吗

考虑到我/失去我的商户账户可能会有风险,保护此页面的正确方法是什么


提前感谢您

奇怪的是,您会允许直接访问流程的第三步,所有其他数据(如用户名、地址等)都在哪里

这是我将要做的一些想法,一个完全安全的系统(可能不存在)将比我的简单步骤复杂得多

注意您可能希望首先允许用户注册一些您可以知道他们是谁的信息(经验证的电子邮件、经验证的电话号码等),然后并且只有在那时,您才可以使用信用卡,如果他们继续输入错误或无效的号码,您可以执行其他操作,例如黑名单,给他们打电话、侮辱他们等等

注2我花了很长时间写这篇文章,读得越多,想得越多,事情似乎就越糟,但既然已经写好了,我还是会把它贴出来

开始前的一些注意事项:

  • 只有一个地址,例如/authenticate/auth.php
  • 流程有一个“状态”,根据这个状态,它将显示/执行不同的操作
  • 对于不同的状态,有其他额外的文件,这些文件根据状态而包括
  • 流程启动后,将创建一个会话并与用户IP、流程状态和有关用户的任何其他可识别信息(例如“用户代理”)链接,该数据将保存在服务器中
  • 似乎您希望使用不同的页面显示不同的状态,所以会是这样。但实际上,我会在一个页面中使用ajax调用
  • 没有可疑IP地址的黑名单(太多正常或错误或完全错误的请求),如果需要可以添加,但复杂性会增加。你可能想也可能不想这样做,也许一杯卡普查就足够了,但是
  • 在某些情况下,capcha可能会有所帮助,但是我在这里描述的会话处理可能需要更改
  • 您可能不想进行电子邮件验证
假设流程状态为ask\u name、ask\u address、ask\u cc等

因此,当对auth页面(/authenticate/auth.php)有任何请求时,我们可以这样做:

1如果“Referer”不是来自某个可能的流程启动程序(主页面等)或此页面(/authenticate/auth.php),我们将重定向到主页面结束

这第一步避免人们直接写地址或来自不受信任的页面

2如果此请求没有会话信息:

2.1如果有一个“user_name”参数和“Referer”是此页面(/authenticate/auth.php)

2.1.1如果该用户名已经注册,则显示(包括,而不是重定向)“ask_name.php”,并附加通知“user ready registed”结束

2.1.2为该用户创建会话,将其与IP、用户代理等其他数据链接

2.1.3将状态设置为ask_address(第二个)并显示'ask_address.php'结束

2.2其他(没有参数或“Referer”错误)

2.2.1显示“ask_name.php”结束

第二步要么显示第一个屏幕(ask_user)要么显示第二个屏幕(ask_name),它会延迟会话的创建,直到我们确定用户想要做一些真实的事情

它有两个问题:

  • 一些用户(或程序)连续发送请求,但没有会话,但带有“user_name”,因此迫使您始终检查用户是否有效,这可能会减慢速度。使用几种不同的技术可以避免这种情况,例如使用capcha或在一段时间内黑名单一些IP
  • 有可能一个用户用一个不存在的“用户名”启动流程,但他速度慢,需要一些时间来完成流程,在这种情况下,第二个用户用相同的“用户名”开始并完成流程,因此当第一个用户要完成时,它将在最后一步失败。这可以通过几种不同的技术来避免,这些技术留作练习
3如果有此请求的会话信息(这是上一步的其他步骤)

3.1如果referer不是此页面,或者服务器中存储的IP与当前请求不同,或者用户代理等其他数据不同,或者状态无效(不在状态列表中),请从请求中删除会话id(以便浏览器将其删除),并显示“ask_name.php”,并附带额外通知“看起来您的设备已更改!!!“结束

3.2“包括”该州的页面:

3.2.1如果参数通过且正确,