来自 网络 2021-02-19 14:11 的文章

大流量攻击防御_最好的_棋牌游戏防护盾

大流量攻击防御_最好的_棋牌游戏防护盾

在这一章中,我将讨论我用来针对SoftLayer的对象存储区域进行身份验证的方法,以及我如何开发自己的本地缓存,用于上载和下载对象存储对象。South Curl Curl:每当我使用Linux Curl命令时,我总是会想起澳大利亚悉尼郊区的一个海滨小镇,1987年我第一次访问那里时,我就住在那里。在计划过程中,我意识到curl命令将是大多数对象存储库的中心。Curl是一个Linux命令,它允许您使用各种受支持的协议在服务器之间传输数据。我将严格使用https(这就是SoftLayer的对象存储设置方式)。Curl允许您设置http头,高防盾cdn,并将其与此请求一起发送。正如我在上一篇博文中所说,我们的目标是使用Bash将所有的拼图粘合在一起,并最终正确地调用curl来上载或下载对象。任何打到我图书馆的电话都会把99.99%的时间花在curl上。身份验证:在使用对象存储处理任何真实数据之前,您必须在其内部或外部网络上针对SoftLayer身份验证服务进行身份验证,并使用已知的身份验证URL以及(由他们)为您生成的用户名和密码。专用网络上的身份验证URL可以总结为以下Bash语句:auth_url="https://${region}。objectstorage.service.networklayer.com/auth/v1.0英寸…其中,app如何防御cc,${region}是SoftLayer分配的区域名称的标签。例如,达拉斯地区(为其所有达拉斯数据中心提供服务)是dal05。通过return,在您成功地进行身份验证之后,ddos防御vps,auth服务器将为您提供一些http头,http主体将是一个JSON字符串,其中包含所有支持的auth url。从现在起,要读取或写入存储在该区域中的任何对象,您将必须提供随任何进一步请求一起提供的身份验证令牌(作为标头之一)。与auth令牌一起使用的还有令牌的颁发日期和时间,以及从该日期/时间起过期的秒数。X-Auth-Token-Expires:84157号日期:2018年1月4日星期四17:49:14 GMTX-Auth-Token:Auth U tkf9040bde767540b09531acfcac46d5b4但是要小心:SoftLayer在他们这边缓存这个令牌,令牌缓存通常会在23到24小时后过期。因此,您获取的令牌可能已被其他身份验证请求缓存在SoftLayer中,在某个其他服务器上。不要假定提供的日期/时间是您最近的身份验证请求的日期/时间。我很早就犯了这个错误,结果很好——基本上是因为我是唯一一个测试的人。但是在生产环境中,我偶尔会发现我用来获取对象的curl命令会因为权限而失败。这是因为出于优化的原因,在为演示服务器配置虚拟机时,我只进行一次身份验证。但实际上,我可能正在获取一个几乎过期的auth令牌,在长时间的构建过程中,它可能会在某个时间点失败。这可能是由于另一个服务器在更早的时候进行了身份验证,而且由于其身份验证令牌仍然有效,ddos攻击的防御手段有哪些,所以也将其交给了我(但在构建过程中已过期)。因此,对于我的身份验证程序,我有:SLObjectStorageGetAuth:这是一个顶级例程,应该始终调用它来针对某个区域进行身份验证。我将区域传递给它,它返回一个身份验证令牌。在我的代码中,凭证保存在内存中的导出变量中。SLObjectStorageGetAuthFile:这是上面调用的一个例程,它将在一个区域的成功身份验证之后下载并缓存头和负载。它将这些信息缓存在服务器的本地磁盘上。这样,可以使用本地缓存的数据(特别是X-Auth-Token-Expires和日期头)来计算令牌是否已过期。如果令牌在5秒钟内过期,我等待10秒,然后从身份验证服务器获取新令牌。SLObjectStorageGetAuth例程在每个用于上载或下载对象的curl命令之前被调用。Linux日期命令:多年来,这个命令已经演变成一个日期计算器。如前所示,以下内容将在终端上显示日期:日期2018年1月17日星期三11:16:22 CST但它可以做的远不止这些,例如,下面显示了自1970-01-01 00:00:00 UTC以来的秒数:日期'+%s'1516209607您还可以提供一个日期,并让它将该日期转换为若干秒:日期-d'1971-01-01 00:00:00 UTC""'+%s'31536000对于Bash,有几种方法可以将命令的输出转换为shell变量。这是我喜欢的:秒=$(日期-d'1971-01-01 00:00:00 UTC'+%s')回声$秒31536000使用date命令,很容易:隔离身份验证令牌的创建日期和生存时间(以秒为单位)。如果这些文件未在本地缓存,则重新验证和缓存。计算身份验证创建日期的秒数,并添加生存时间值。计算当前日期/时间("now")的秒数。查看过期秒数是否大于现在;如果大于,请重新验证和缓存。查看过期秒数是否在现在的5秒之内;如果是,请等待10秒,然后重新验证和缓存。请记住,在上载或下载对象的每个curl命令之前都会遍历此逻辑,而且由于身份验证令牌(和相关数据)是本地缓存的,免费ddos防御系统,因此每次curl都会保存到auth服务器的往返行程。本地磁盘缓存只不过是一个名为swauth_cache的目录,在该目录下是以该区域命名的文本文件,例如dal05。这些文件包含对auth URL的调用的最后输出。调用的URL可能看起来像一个代码:如果!curl–重试10-s-s-i\-H"X-Auth-User:${username}"\-H"X-Auth-Key:${password}""${Auth_url}"\>"${swauth_文件}"然后'一些错误代码金融机构在这种情况下,任何输出(头和有效负载)都将进入缓存文件,而任何错误输出都将转到标准错误。