什么是CSRF令牌,它如何工作?

许多现代的Web框架(如Laravel或Play框架)都具有内置支持,可保护您的Web应用程序免受跨站点请求伪造  (CSRF)的侵害  。这是一件好事,但是并不是每个开发人员何时以及如何使用它都总是不清楚。在本文中,我尝试给出一些(希望)易于理解的答案。

在潜入之前,让我们提醒自己一些规则和限制:…

    

FFmpeg 视频处理入门教程

FFmpeg 是视频处理最常用的开源软件。

它功能强大,用途广泛,大量用于视频网站和商业软件(比如 Youtube 和 iTunes),也是许多音频和视频格式的标准编码/解码实现。

FFmpeg 本身是一个庞大的项目,包含许多组件和库文件,最常用的是它的命令行工具。本文介绍 FFmpeg 命令行如何处理视频,比桌面视频处理软件更简洁高效。

如果你还没安装,可以根据官方文档 先完成安装。…

异步PHP

这里有一个新的程序包,它称为spatie/async,旨在在PHP中进行异步并行处理。

对于许多Web开发人员而言,PHP中的并行处理似乎是一个边缘案例,但让我们看一下Spatie上的一些用例:

我们想创建一个易于使用的程序包,但是它可以解决我们的用例。上面列出的有些示例将不使用新spatie/async软件包,因为Laravel还提供了一个队列系统。

这就是我们程序包中的异步代码的样子。

use Spatie\Async\Process;

$pool = Pool::create();

foreach (range(1, 5) as $i) {
    $pool[] = async(function () use ($i) {
        
    

图解git工作原理

本文介绍了Git的工作原理。假定您对Git有足够的了解,可以使用它对项目进行版本控制。

本文着重于支撑Git的图结构以及该图的属性指示Git行为的方式。从基础上看,您的思维模型是建立在事实之上,而不是根据在尝试API时收集的证据构建的假设。这个更真实的模型使您可以更好地了解Git所做的事情,正在做的事情以及它将做的事情。

文本的结构是在单个项目上运行的一系列Git命令。有时会观察到有关构建Git的图形数据结构的信息。这些观察结果说明了图形的属性以及该属性产生的行为。

阅读后,如果您想更深入地研究Git,可以查看我在JavaScript中实现Git的注释严重的源代码。…

NGINX 的速率限制

NGINX最有用但经常被误解和配置错误的功能之一是速率限制。它允许您限制用户在给定时间内可以发出的HTTP请求数量。请求可以像GET对网站首页的POST请求或登录表单上的请求一样简单。

速率限制可用于安全目的,例如,减慢暴力密码猜测攻击的速度。通过将传入请求速率限制为实际用户的典型值,并(使用日志记录)标识目标URL,它可以帮助防御DDoS攻击。更一般而言,它用于防止上游应用程序服务器同时被太多用户请求所淹没。

在此博客中,我们将介绍NGINX的速率限制基础以及更高级的配置。速率限制在NGINX Plus中的工作方式相同。…

localhost ssl 本地证书

有时,人们希望获得主机名为“localhost”的证书,以用于本地开发或与需要与 Web 应用程序通信的原生应用程序一同分发。Let’s Encrypt 不能为“localhost”提供证书,因为没有人唯一地拥有它,并且它不在“.com”或“.net”等顶级域名下。您可以将您自己的域名设置为解析至“127.0.0.1”,并使用 DNS 验证获取证书。然而,通常情况下这是个坏主意,您其实有更好的选择。…