-
正则表达式也会导致拒绝服务?探讨 ReDos(可能会中招哦)
介绍 当您想到拒绝服务攻击时,您会想到什么?可能是一大群机器人试图访问 Web 服务器的资源以使其瘫痪。好吧,这肯定是导致拒绝服务攻击的一种方式。但是,还有一种您可能没有听说过的方式。它被称为 ReDoS,是由正则表达式引起的。 正则表达式?但这怎么可能呢?那不是通过使用过滤器来匹配字符串、将字符串列入白名单和黑名单,从而使我们的工作更轻松吗?是的,但是攻击者也可以利用它来使应用程序(服务器)屈服。让我们了解如何! 正则表达式是什么? 简而言之,正则表达式是一种用于匹配(编程语言中)字符串的模式…
-
find 命令的 7 种用法
可以很肯定地说,find 命令是 Linux 后台开发人员必须熟知的操作之一,除非您使用的是 Windows Server。 对于技术面试,它也是一个热门话题。让我们看一道真题: 如果你的 Linux 服务器上有一个名为 logs 的目录,如何删除该目录下最后一次访问时间超过一年的日志文件呢?🤔 这种情况很常见,但令人惊讶的是,并非每个开发人员都能在面试中清楚地写出这个命令。 答案:首先我们需要使用 cd 命令进入对应的目录,然后,命令如下: 如果你还没有完全理解上面的命令,完全不用担心。本文将…
-
实用正则表达式快速参考
检查数字 数字:^[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 Bash Shell 中变量的 5 个易错点
Linux 中的 Bash 脚本语言支持对变量的操作。但是,如果您从事过其他流行的编程语言开发,那么使用 Bash 处理变量会很容易出错。因为它的语法与其他语法不同(甚至对某些开发人员来说有点奇怪)。 这篇文章会根据我的经验给你5个友情提示。阅读后,它可以帮助您避免不必要的错误。 0. 等号周围没有空格 对于许多语言,例如 Python,在等号周围添加空格是一个好习惯,因为它可以提高代码的可读性。 但是在 Bash 中,你不应该在定义变量时添加额外的空格。 如果我声明一个变量 name,如下: …
-
探讨 DNS 解析
DNS 服务器 在现实世界中,当您进行阅览新闻、在线下单、下载文件或观看直播时,您需要通过访问域名来访问目标网站,例如 youtube.com、google.com 等。您只需记住这些网站的名称,而非它们的 IP 地址,因为与网站名称相比,IP 地址是很难记住的。因此,您需要一个作为 DNS 服务器的网站/域名地址本。 DNS 在日常生活中非常重要。每个在线的人都需要访问它,但同时,这对它来说也是一个非常大的挑战。如果 DNS 服务器出现故障,整个 Internet 网络都将关闭。 另外,上网的…
-
如何在 CentOS 8 上使用 FirewallD 设置防火墙?
我是一个 CentOS Enterprise Linux 8 系统管理员。如何在 CentOS8 上使用 FirwallD 设置防火墙? 简介 一个 Linux 防火墙可用于保护您的工作站或服务器免受不需要的流量干扰。您可以设置规则来阻止或允许流量通过。CentOS 8 带有一个动态的、可定制的基于主机的防火墙和一个 D-Bus 接口。您可以添加、删除或更新防火墙的规则,而无需重新启动防火墙守护程序或服务。firewall-cmd 充当着 nftables 的前端。在 CentOS 8 中,nf…
-
怎样才能让 Linux 文档的颜色高亮?
您可以在 Linux 中用颜色显示文件中的信息页面。info 命令在 Linux 或 Unix 下用于阅读多页文档,并也可作为命令行界面上的工作帮助查看器。在服务器上没有可用的 GUI 时,这是很有用的。info 命令处理信息文件。所有信息文件都是 Texinfo 格式。而 pinfo 是一个鲜为人知的工具,它可以用颜色显示信息页面。 我们可以在 Linux 和类 Unix 系统(如 FreeBSD 或 macOS)上安装 pinfo。 安装 pinfo 在 Debian/Ubuntu Linu…
-
Linux CPU 上下文切换的故障排查
在我的上一篇文章:《探讨 Linux CPU 的上下文切换》中,我谈到了 CPU 上下文切换的工作原理。快速回顾一下,CPU 上下文切换是保证 Linux 系统正常运行的核心功能。可分为进程上下文切换、线程上下文切换和中断上下文切换。 在本文中,我将进一步讨论如何分析 CPU 上下文切换问题。 检查 CPU 的上下文切换 我们知道,过多的上下文切换会消耗 CPU 的时间来保存和恢复寄存器、程序计数器、内核栈和虚拟内存等数据,从而导致系统性能显着下降。 既然上下文切换对系统性能的影响如此之大,那么…
-
探讨 Linux CPU 的上下文切换
我们都知道 Linux 是一个多任务操作系统,它支持的任务同时运行的数量远远大于 CPU 的数量。当然,这些任务实际上并不是同时运行的(Single CPU),而是因为系统在短时间内将 CPU 轮流分配给任务,造成了多个任务同时运行的假象。 CPU 上下文(CPU Context) 在每个任务运行之前,CPU 需要知道在哪里加载和启动任务。这意味着系统需要提前帮助设置 CPU 寄存器和程序计数器。 CPU 寄存器是内置于 CPU 中的小型但速度极快的内存。程序计数器用于存储 CPU 正在执行的或…
-
Linux 终端上 10 个不容错过的游戏!你玩过几个?
如果你想学习使用 Linux 终端,一个很好的开始方法是安装和玩一些游戏。这些游戏不仅有趣——它们也不需要兼容层或昂贵的显卡。 Bastet 俄罗斯方块是俄罗斯软件工程师 Alexey Pajitnov 于 1984 年制作的一款益智游戏。该游戏在 90 年代人气飙升,到 1996 年底在全球拥有超过 2000 万玩家。 Bastet 这个名字是“bastard”和“Tetris”的组合。这背后的原因是,这个俄罗斯方块克隆试图通过给你不想要的确切块来挫败你,而不是给你一个随机块。因此名称为Bas…