• 正则表达式也会导致拒绝服务?探讨 ReDos(可能会中招哦)

    介绍 当您想到拒绝服务攻击时,您会想到什么?可能是一大群机器人试图访问 Web 服务器的资源以使其瘫痪。好吧,这肯定是导致拒绝服务攻击的一种方式。但是,还有一种您可能没有听说过的方式。它被称为 ReDoS,是由正则表达式引起的。 正则表达式?但这怎么可能呢?那不是通过使用过滤器来匹配字符串、将字符串列入白名单和黑名单,从而使我们的工作更轻松吗?是的,但是攻击者也可以利用它来使应用程序(服务器)屈服。让我们了解如何! 正则表达式是什么? 简而言之,正则表达式是一种用于匹配(编程语言中)字符串的模式…

    Linux云计算, 技术干货 2022年5月11日
  • find 命令的 7 种用法

    可以很肯定地说,find 命令是 Linux 后台开发人员必须熟知的操作之一,除非您使用的是 Windows Server。 对于技术面试,它也是一个热门话题。让我们看一道真题: 如果你的 Linux 服务器上有一个名为 logs 的目录,如何删除该目录下最后一次访问时间超过一年的日志文件呢?🤔 这种情况很常见,但令人惊讶的是,并非每个开发人员都能在面试中清楚地写出这个命令。 答案:首先我们需要使用 cd 命令进入对应的目录,然后,命令如下: 如果你还没有完全理解上面的命令,完全不用担心。本文将…

    Linux云计算, 技术干货 2022年5月10日
  • 实用正则表达式快速参考

    检查数字 数字:^[0-9]*$ n 位数:^\d{n}$ 至少 n 位数字:^\d{n,}$ m~n 位数字:^\d{m,n}$ 以零和非零开头的数字:^(0|[1-9][0-9]*)$ 以非零开头且最多两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$ 带 1-2 位小数的正数或负数:^(\-)?\d+(\.\d{1,2})?$ 正数、负数和小数:^(\-|\+)?\d+(\.\d+)?$ 非零正整数:^[1-9]\d*$ or ^([1-9][0-9]*){1,3…

    Linux云计算, 技术干货 2022年5月9日
  • 你必须知道的 5 个重要的密码学知识

    引言 密码学用于将输入(明文)转换为加密的输出(密文)。因此,使用不同的算法将输入转换为输出,大多数情况下需要使用密钥来加密和解密。密码学中的密钥是用于算法的字符序列。然后,密文可用在世界各地的安全存储和传输数据,只有发送者和接收者才能解密和读取明文。 加密分为三种不同的方法: 对称加密(Symmetric Encryption) 非对称加密(Asymmetric Encryption) 散列(Hashing) 对称加密 对 “FILM” 单词的加密和解密: 对称加密的主要优点是速度快。在速度很…

    技术干货, 网络安全 2022年5月9日
  • 关于 Linux Bash Shell 中变量的 5 个易错点

    Linux 中的 Bash 脚本语言支持对变量的操作。但是,如果您从事过其他流行的编程语言开发,那么使用 Bash 处理变量会很容易出错。因为它的语法与其他语法不同(甚至对某些开发人员来说有点奇怪)。 这篇文章会根据我的经验给你5个友情提示。阅读后,它可以帮助您避免不必要的错误。 0. 等号周围没有空格 对于许多语言,例如 Python,在等号周围添加空格是一个好习惯,因为它可以提高代码的可读性。 但是在 Bash 中,你不应该在定义变量时添加额外的空格。 如果我声明一个变量 name,如下: …

    Linux云计算, 技术干货 2022年5月9日
  • 使用 Thanos 和 Prometheus 打造一个高可用的 Kubernetes 监控系统

    对于弹性伸缩和高可用的系统来说,一般有大量的指标数据需要收集和存储,如何为这样的系统打造一个监控方案呢?本文介绍了如何使用 Thanos+Prometheus+Grafana 构建监控系统。 集群容量概览 直到今年 1 月,我一直在使用一款企业级监控解决方案来监控 Kubernetes 集群,这款监控方案还用于 APM。它用起来很自然,与 Kubernetes 的集成非常容易,只需要进行一些细微的调整,并且可以集成 APM 和基础设施指标。 尽管这款监控方案可以很容易地收集和存储数据,但使用指标…

  • Python 中 4 个高效的技巧!

    今天我想和大家分享 4 个省时的 Python 技巧,可以节省 10~20% 的 Python 执行时间。 反转列表 Python 中通常有两种反转列表的方法:切片或 reverse() 函数调用。这两种方法都可以反转列表,但需要注意的是内置函数 reverse() 会更改原始列表,而切片方法会创建一个新列表。 但是他们的表现呢?哪种方式更有效?让我们看一下下面的例子: 使用切片: 使用 reverse(): 这两种方法都可以反转列表,但需要注意的是内置函数 reverse() 会更改原始列表,…

    Python开发, 技术干货 2022年5月5日
  • 探讨 DNS 解析

    DNS 服务器 在现实世界中,当您进行阅览新闻、在线下单、下载文件或观看直播时,您需要通过访问域名来访问目标网站,例如 youtube.com、google.com 等。您只需记住这些网站的名称,而非它们的 IP 地址,因为与网站名称相比,IP 地址是很难记住的。因此,您需要一个作为 DNS 服务器的网站/域名地址本。 DNS 在日常生活中非常重要。每个在线的人都需要访问它,但同时,这对它来说也是一个非常大的挑战。如果 DNS 服务器出现故障,整个 Internet 网络都将关闭。 另外,上网的…

    Linux云计算, 技术干货 2022年5月5日
  • Golang 请求限速、排队实现

    概要 在调用第三方 API 的时候, 基本都有访问限速的限制条件. 第三方的 API 有多个的时候, 就不太好控制访问速度, 常常会导致 HTTP 429(Too Many Requests) 然后就会有一段时间的禁止访问. 为了应对这种限速的情况, 通过一个简单的请求队列来控制访问的速度, 之后基本没遇到过 HTTP 429 了. 实现思路 首先, 每个请求包装成一个 RequestParam 的 struct, 其中包含请求的地址,类型,参数以及 response 的 channel. 发送…

    go开发, 技术干货 2022年4月29日
  • K8s 创建资源的两种方式

    在 K8s 中,创建资源有两种方式: 直接使用 kubectl run 命令创建 使用 kubectl create/apply 命令从 YAML 文件创建 在本文中,我将通过示例解释这两种方法,以及它们分别应该在何时使用。 kubectl run kubectl run 命令在 pod 中创建并运行特定的镜像。例如: 如果您对这个新 pod 执行 kubectl describe 命令,您将看到: 请注意,Labels 是 run=nginx。 您还可以在 run 命令中指定环境变量,例如: …

历经多年发展,已成为国内好评如潮的Linux云计算运维、SRE、Devops、网络安全、云原生、Go、Python开发专业人才培训机构!