PHP 中字符串与 byte 字节数组的互相转换
在 PHP 里没有像 Java 那样直接可用的 `byte[]` 类型,但在做加密、协议对接或跨语言数据处理时,字符串和字节数组之间的转换仍然很常见。本文用一组简单函数说明两种转换的写法,并解释它们各自依赖的 `chr()`、`ord()` 与按字节遍历方式,方便你判断这类代码该在什么场景下使用。
在 PHP 里没有像 Java 那样直接可用的 `byte[]` 类型,但在做加密、协议对接或跨语言数据处理时,字符串和字节数组之间的转换仍然很常见。本文用一组简单函数说明两种转换的写法,并解释它们各自依赖的 `chr()`、`ord()` 与按字节遍历方式,方便你判断这类代码该在什么场景下使用。

PHP 7.1 之后,老牌的 mcrypt 已经进入废弃阶段,继续依赖 `mcrypt_module_open()` 会让升级和部署都变得更麻烦。本文结合 PHP 手册给出的迁移方向,整理出用 OpenSSL 实现 AES 加解密的替代写法,并说明这段代码适合什么场景、迁移时要注意哪些点。

ThinkPHP 5.0 控制器层的几类高危问题,本质都出在“路径可控、方法可改、参数缺少边界”三个入口。本文按漏洞成因拆开说明,并给出可直接落地的拦截、白名单校验和输入约束代码,便于在旧项目里快速补丁和排查。

用 Burp Suite 验证 SQL 注入,关键不在“跑没跑扫描器”,而在能否通过 Repeater 和 Intruder 把响应差异抓实。本文按手工确认注入点、区分 Union 与盲注、批量跑布尔盲注、理解 Scanner 漏报四步展开,帮助你判断漏洞是否真实、属于哪一类、后续该怎么验证。

在宝塔面板里给 ThinkPHP5 做二级域名绑定,真正决定是否生效的不是“把域名加进去”这一步,而是 TP5 的域名部署开关、`__domain__` 路由、DNS 解析、证书覆盖范围,以及 `/public` 运行目录与伪静态是否同时到位。本文按排查顺序梳理关键配置和常见误区。

ThinkPHP 的敏感信息泄露通常不是单个开关失效,而是调试、错误显示、日志、运行时目录和代码写法叠加造成。本文按实际排查顺序梳理高风险暴露点,并给出可直接落地的关闭项、权限检查和代码修正要点。

JavaScript 的隐式类型转换常被当成编码细节,但在鉴权、计费、排序和输入校验里,它完全可能演变成权限绕过或逻辑误判。本文围绕审计中最常见的高危运算符,整理可直接落地的检查清单,并给出适合纳入工程流程的防御方式。

Apache 的错误日志里,404、403、500、401 以及配置、权限、模块、证书相关报错最常见,但同一个状态码背后往往对应不同根因。本文按“日志表现、常见原因、排查思路”重组这些高频问题,方便你在看见报错时更快判断该查 URL、配置、权限、模块还是 SSL 文件。

这篇文章围绕 Ruby 开发中最常见的几类安全风险展开,覆盖 SQL 注入、XSS、CSRF、输入校验、密码存储与日志审计等重点场景。文章保留原有 Ruby/Rails 示例,并补充每类问题的判断思路,便于在项目里快速核对安全基线。

给 Nginx 开启 HTTPS,关键不在步骤多,而在证书、配置路径和重载顺序是否准确。本文按“证书准备、server 配置、重定向与生效验证”梳理完整流程,并保留可直接参考的配置与命令,便于快速判断哪里最容易出错。

在 Debian 上做 Java 编译,风险通常不在单一漏洞,而在更新、依赖、权限和运行环境几个环节同时失守。本文按实际操作顺序梳理一套防范思路,保留关键命令、配置点和工具名称,帮助你判断哪些措施该优先落地。

Nginx 日志里的 4xx 错误码,往往就是定位故障方向的第一手信息。本文按排查场景重组常见状态码,说明它们分别指向请求格式、认证权限、资源状态、上传限制与协议协商等问题,便于运维和开发快速判断该查客户端、Nginx 配置还是上游应用。
