背景
我已经接管了一个运行非常旧版PHP的网站的更新。在将网站从5.3移动到7.1后,我发现authorize.net不断发送电子邮件说明,
我们将不再允许TLS 1.0和1.1
它声明它将在接下来的几周内完全停止工作,我不知道如何知道该网站是否使用了这个已弃用的TLS版本。我假设我应该能够通过应用程序中的authorize.net类来了解。但代码不以任何方式引用TLS
。我还假设我可以通过使用的端点知道,但我还没有看到任何关于正在使用的TLS版本与所使用的端点有关。
有没有人知道测试的确定方法,并知道我们是否确实在我们的网站中使用旧版本的TLS?或者,如果可能的话,我们在网站中使用了一个非常旧版本的authorize.net,完全不依赖于TLS?
示例代码
这些是应用程序中使用的一些类的开头。也许有人对您正在使用的TLS
版本指定的authorize.net api
版本的内容有所了解。
class.aim.cc.license.php
<?php
/*********************/
/* */
/* Dezend for PHP5 */
/* NWS */
/* Nulled.WS */
/* */
/*********************/
class authnetcc
{
var $fields = array( );
var $license_key;
var $gateway_url = "https://secure.authorize.net/gateway/transact.dll";
var $proxy_url;
var $proxy_port;
var $secure_source = false;
var $error_code;
var $error_message;
var $error_field;
...
AIM.class.php
<?php
/**
* CLASS AIM
*
*
*/
class AIM {
// login credentials that Authorize.net uses for verification
var $login_id = '';
var $trans_key = '';
// server
var $server = '';
// credit card information
var $cc_name = '';
var $cc_number = '';
var $cc_month = '';
var $cc_year = '';
var $cc_code = '';
var $cc_type = '';
// error stack array
var $errorStack = array();
// modes
var $testMode = false;
var $debugMode = false;
var $errorRetries = 2;
// buyer information
var $buyer = array();
// response information
var $status = '';
var $subcode = '';
var $response_code = '';
var $response_text = '';
var $approval_code = '';
var $md5hash = '';
var $code = '';
var $remaining = array();
// constructor
function __construct($login_id, $trans_key) {
$this->login_id = $login_id;
$this->trans_key = $trans_key;
$this->setTesting(0);
}
...
答案 0 :(得分:3)
这是不编码问题。 Authorize.Net has been sending these emails out for over a year。与所有其他符合PCI标准的支付网关一样,它们需要使用TLS 1.2或更高版本才能保持PCI兼容,这意味着它们的所有客户也必须兼容。这是您在服务器上配置的内容,而不是PHP代码中配置的内容。如果您使用的是共享Web托管服务提供商,则需要与他们联系并要求将其移至支持TLS 1.2的服务器或查找支持TLS 1.2的新主机。
仅供参考,您还应该使用new Akamai URL作为其API也必须更新。正在使用的URL是https://api2.authorize.net/xml/v1/request.api
。