编程

高级设计 vs. 低级设计

98 2024-04-27 17:26:00

1. 概述本文中,我们将探讨软件工程中的低级设计和高级设计。2. 什么是高级设计?建筑的鸟瞰图显示了其整体结构、住宅楼层、商业空间和便利设施,以及它们是如何无缝连接的。类似地,高级设计(HLD)就像软件系统的鸟瞰图。它定义了总体架构、主要组件以及它们之间的交互方式。我们可以把它看作是为我们的软件体系结构奠定基础的蓝图。因此,HLD 是设计过程的初始阶段的结果...

详情...
编程

Laragon:一款优秀的本地集成开发环境,PHP/Laravel 开发利器

154 2024-04-25 01:25:00

什么是 Laragon?Laragon 是一个可移植、独立、快速、强大的通用开发环境,适用于 PHP、Node.js、Python、Java、Go 和 Ruby。它快速、轻便、易于使用且易于扩展。Laragon 非常适合构建和管理现代 web 应用程序。它专注于性能——围绕稳定性、简单性、灵活性和自由度进行设计。Laragon 非常轻,将尽可能保持苗条。核心...

详情...
编程

Cookie 安全标志

114 2024-04-22 18:10:00

为什么需要保护 cookie?Web 浏览器使用 HTTP cookie 的最常见方式之一是用于用户身份验证和会话持久性。攻击者可以通过执行以下任何操作以恶意方式使用cookie:窃取包含会话 ID 或身份验证 cookie 等敏感信息的 cookie重复使用被盗的 cookie 以访问经过身份验证的区域和现有用户会话伪造 cookie 以访问经过身份验证的...

详情...
编程

使用 Same-Site Cookie 属性防止 CSRF 攻击

125 2024-04-21 18:03:00

本文详细介绍了 Same-Site cookie 属性的工作原理,以及如何使用它来帮助防止恶意跨站点请求伪造(CSRF)攻击。

详情...
编程

Laravel 底层原理 - CSRF

135 2024-04-20 06:43:00

TokenMismatchException 👋你可能至少遇到过一次这种情况。你复制粘贴了异常,在网上搜索了一下,发现在请求中添加 @csrf 之类的指令或在 header 中引入 X-CSRF-TOKEN 就是修复方法。我们都走过这条路。但你有没有想过,为什么 Laravel 一开始就抛出这个异常?你真的需要在每个请求中发送一个 t...

详情...
编程

PHP 8.4: 新增 http_(get|clear)_last_response_headers 函数

130 2024-04-19 03:03:00

PHP 提供了一个 HTTP 包装器,可以使用标准文件系统函数访问远程 HTTP 内容。例如,file_get_contents() 函数可以获取远程 HTTP 资源以及文件系统上的常规文件。在成功建立远程连接后,HTTP 包装器填充一个名为 $http_response_header 的本地变量。此变量是在局部作用域中填充的,它不是超全局变量。这是一个历史...

详情...
编程

PHP 8.4: 新增 mb_ucfirst 和 mb_lcfirst 函数

131 2024-04-18 21:18:00

PHP 提供 ucfirst 和 lcfirst 函数来更改给定字符串中第一个字符的大小写。mbstring 扩展为 PHP 的大多数标准字符串函数提供了多字节安全函数。然而,在 PHP8.4 之前,mbstring 扩展没有为 ucfirst 和 lcfirst 函数提供多字节安全的对应函数。在 PHP 8.4 中,mbstring 扩展添加了 mb_uc...

详情...
编程

PHP 随机数函数的随机性测试

166 2024-04-18 18:00:15

随机数生成是一个生成无法合理预测的数字的过程。数字序列不应该是可预测的,它在依赖随机数序列的不可预测性的应用程序中发挥着重要作用。“真”随机数生成过程可以包括任何东西,从简单的掷硬币、掷骰子到宇宙辐射测量、大气压、熔岩灯,以及其他取决于几个自然发生的物理方面的物理手段,这使得在计算机上进行预测变得相当困难。大多数现代计算机操作系统试图提供一个接近的“真实”随...

详情...
编程

使用 Laravel Zero 创建 TCP 服务器

128 2024-04-18 18:00:00

几周前,我开始为我的团队 “Securets ISI” 主办的即将到来的年度 CTF 开发 TCP 服务器。目标是使玩家能够使用以下命令快速提交标志:echo "flag" | nc 127.0.0.1 8000对于这项任务,我需要开发一个控制台应用程序。我发现 Laravel Zero 非常适合,而不是像 Laravel 的 DB 和 Views 组件、S...

详情...
编程

"Typed property must not be accessed before initialization" - 引入类型提示遇到的错误

172 2024-04-16 16:56:00

在 PHP 中,当属性的定义使用了类型提示,而在显式赋值前访问该属性时,会碰到 "Typed property must not be accessed before initialization" 错误。通过为该属性提供默认值,或者在类的构造函数中初始化该属性,可以解决这一问题。

详情...