PHP 最佳实践(译)——PHP 容易混淆技术的实用指南

在网上看到一篇文章,PHP Best Practices-A short, practical guide for common and confusing PHP tasks,感谢 @夏永锋 提供了文章的翻译。

 

本文托管在 GitHub 上,有一些参考文献和深入阅读内容还没有找到中文连接,如果您感兴趣的话,可以用 Pull Request 的方式参与翻译。

 

---------------------------------------------------------------------------------------------------------------------

 

PHP 是一门复杂的语言,经过多年折腾,使其不同版本之间高度不一致,有时还有些 bug。 每个版本都有自己独有的特性、多余和怪异之处,也很难跟踪哪个版本有哪些问题。 这也就很好理解为什么有时它会遭到那么多的厌恶。

 

尽管如此,如今它还是 Web 开发方面最流行的语言。 因其悠久的历史,对于实现密码哈希和数据库访问诸如此类的基本任务你能够找到很多教程。 但问题在于,5 个教程,你就很有可能找到 5 种完全不同的完成任务的方式,那么哪种是「正确」的方式呢? 其他方式有难以捉摸的 bug 或者陷阱? 确实很难搞明白,所以你经常要在互联网上反复查找尝试确认正确的答案。

 

这也是 PHP 编程新手频繁地因为丑陋、过时、或不安全的代码而遭到责备的原因之一。 如果 Google 搜索的第一个结果是一篇 4 年前的文章,讲述一种 5 年前的方法,那么 PHP 新手们也就很难改变经常遭受责备的现状。

 

本文档通过为 PHP 中常见的令人困惑的问题和任务编辑组织一系列被认为最佳实践的基本做法, 来尝试解决上述问题。 若一个低层次的任务在PHP中有多种令人困惑的实现方式,本文也会涵盖。

是什么

 

这是一份指南,在 PHP 程序员遇到一些常见低层次任务但不明确最佳做法(由于 PHP 可能提供了多种解决方案)之时,为其建议最佳实践。 例如:连接数据库是一个常见任务,PHP 中提供了大量可行的方案,但并不是所有的都是好的做法,因此,本文也会包含该问题。

 

本文包含的是一系列简短的、入门性质的方案。 涉及的示例在基本设定下就能够运行起来,你研究一下应该就能把它们变为对你有用的东西。

 

本文将指出一些我们认为是 PHP 中最新最好的东西。然而,这意味如果你在使用老版本的 PHP, 一些用来实现这些解决方案的特性对你并不可用。

 

这份文档会一直更新,我会尽我最大努力保持该文档与 PHP 的发展同步。

不是什么

 

本文档不是一份 PHP 教程。你应该在别处学习语言基础和语法。

 

它也不是一份针对 web 应用常见问题,如 cookie 存储、缓存、编程风格、文档等的指南。

它也不是一个安全指南。当本文档触碰到一些安全相关的问题时,也是希望你自己做些研究来确保你的 PHP 应用的安全问题。 你的代码造成的问题应该都是自己的过错。

 

该文档也并不是在主张一种特定的编程风格、模式或者框架。

 

也不是在主张一种特定的方式来完成高层次任务如用户注册、登录系统等。 本文档只限于 PHP 的悠久历史所造成的一些易混淆或不明确的低层次任务。

 

它不是一个一劳永逸的解决方案,也不是一个唯一的方案。 下面要讲述的一些方法对于你的特定场景来说也许并不是最好的,存在很多不同的方式来达到同样的目的。 特别是,高负载 web 应用也许能从更加难懂的方案中获益更多。

 

原文太长,故没有贴完,继续阅读。

Isaac Gym环境安装和四足机器人模型的训练 该方法提出一种训练模式,该模式通过在单个GPU工作站上使用大规模并行的方法来实现现实世界机器人任务的快速控制策略的生成。 阅读详情

相关推荐

Linux内核4.14版本——drm框架分析(1)——drm简介

drm框架分析

yangguoyu8023的博客 1万+

PHP最佳实践

<br />今天下午,我在读下面这篇文章。<br />虽然名字叫《PHP最佳实践》,但是它主要谈的不是编程规则,而是PHP应用程序的合理架构。<br />它提供了一种逻辑和数据分离的架构模式,属于MVC模式的一种实践。我觉得,这是很有参考价值的学习资料,类似的文章网上并不多,所以一边学习,一边就把它翻译了出来。<br />根据自己的理解,我总结了它的MVC模式的实现方式(详细解释见译文):<br />  * 视图层(View):前端网页;<br />  * 逻辑层(Controller):先是页逻辑(Pag

wunainaixiaohua的专栏 371

LDA模型中文文本主题提取丨可视化工具pyLDAvis的使用

主题模型LDA的实现及其可视化pyLDAvis1. 无监督提取文档主题——LDA模型1.1 准备工作1.2 调用api实现模型2. LDA的可视化交互分析——pyLDAvis2.1 安装pyLDAvis2.2 结合gensim调用api实现可视化p.s. 保存结果为独立网页p.p.s. 加快prepare速度?2.3 如何分析pyLDAvis可视化结果2.3.1. **每个主题表示什么意义?**2.3.2 每个主题有多么普遍?2.3.3 主题之间有什么关联? 1. 无监督提取文档主题——LDA模型 这个模型

qq_39496504的博客 6万+

10位顶级PHP大师的开发原则

<br />在Web开发世界里,PHP是最流行的语言之一,从PHP里,你能够很容易的找到你所需的脚本,遗憾的是,很少人会去用“最佳做法”去写一个PHP程序。这里,我们向大家介绍PHP的10种最佳实践,当然,每一种都是经过大师们证明而得出的。<br />1. 在合适的时候使用PHP – Rasmus Lerdorf<br />没有谁比PHP的创建者Rasmus Lerdorf明白PHP用在什么地方是更合理的,他于1995年发布了PHP这门语言,从那时起,PHP就像燎原之火,烧遍了整个开发阵营,改变了互联网的世

iVan 539

FairyGUI深度解析:Unity复杂UI开发的高效解决方案与性能优化

在Unity游戏和应用开发中,UI系统的性能与开发效率是核心挑战。原生UGUI的组件化模型在应对复杂、动态界面时,常面临Draw Call过高、层级管理臃肿的问题。其原理在于,每个UI元素对应一个GameObject,渲染合批受限于Transform层级与材质状态,易导致性能瓶颈。FairyGUI(FGUI)作为一种专业的第三方UI解决方案,其技术价值在于采用了截然不同的“舞台-显示对象”渲染模型。该模型通过内部轻量级对象管理与自主合批系统,实现了极高的运行时效率与Draw Call优化。在应用场景上,FG

weixin_31315567的博客 339

使用RepeatModeler和RepeatMasker注释基因组重复序列

重复序列注释有两种常用策略,基于同源序列相似性和基于重复序列结构特征。RepeatMasker是基于同源序列相似性注释序列的常用工具, RepeatModeler可用来从头对基因组的重复序列家族进行建模注释,它的核心组件是RECON和RepatScout。 这篇教程介绍如何使用RepeatModeler从头鉴定基因组的重复序列,之后用RepeatMasker根据自...

xuzhougeng blog 8849

php混淆

混淆方法: 两个文件采用了4种混淆方法对代码进行混淆 1、局部变量追加乱码 对于局部变量,在经过转为无意义单字符后,在变量名后追加多个’\xEF\xBD\xBD’字符,并在其中混杂一些其他不可见字符(7E以后的),给人以乱码的感觉,单实际上并无影响。局部变量可以任意命名,只要能区分出来就行。 2、利用unicode加转义符显示字符串,采用十进制和十六进制两种方式进行显示,避免直观看到。 php可以使用如"\150\157\155\145\120\141\164\150"(十进制)或"\x73\x79\x73

weixin_45649612的博客 1021

CST仿真实例001:圆极化平板天线仿真

CST仿真实例001:圆极化平板天线仿真实例

weixin_47638568的博客 1万+

[PHP]浅谈php混淆与反混淆

PHP编译 PHP是解析型高级语言,事实上从Zend内核的角度来看PHP就是一个普通的C程序,它有main函数,我们写的PHP代码是这个程序的输入,然后经过内核的处理输出结果,内核将PHP代码"翻译"为C程序可识别的过程就是PHP的编译。 C程序在编译时将一行行代码编译为机器码,每一个操作都认为是一条机器指令,这些指令写入到编译后的二进制程序中,执行的时候将二进制程序load进相应的内存区域(常量区、数据区、代码区)、分配运行栈,然后从代码区起始位置开始执行,这是C程序编译、执行的简单过程。 同样,PHP的

cosmoslin的博客 4964

科研绘图系列:基因突变瀑布图统计以及可视化

科研绘图系列:基因突变瀑布图统计以及可视化

专注生信领域 1653

【肌电处理】肌电信号EMG积分肌电值+均方根值+中值频率+平均功率频率【含Matlab源码 3386期】

肌电信号EMG积分肌电值+均方根值+中值频率+平均功率频率 完整的代码,方可运行;可提供运行操作视频!适合小白!

订阅付费专栏Matlab(奶茶价版),可赠送奶茶价版付费专栏指定代码1份; 821

如何快速掌握YAK Pro PHP代码混淆器:完整使用指南

YAK Pro PHP代码混淆器是一款强大的开源工具,专门用于保护PHP源代码安全。当您需要分发PHP项目时,使用YAK Pro可以有效防止他人理解、修改或逆向工程您的代码,同时保持程序功能完整。🚀 ## 🔒 什么是PHP代码混淆? PHP作为脚本语言,源代码通常直接可见。代码混淆通过以下方式增强代码安全性: - **移除注释和缩进**:生成单行程序文件 - **语句重排**:打乱代码执

gitblog_00989的博客 913

海思芯片OpenHarmony系统移植:Sensor传感器模块HDF驱动配置HCS文件详解

海思系列芯片的传感器模块通过HDF(Hardware Driver Foundation)驱动框架进行管理和配置。传感器HCS(HDF Configuration Source)配置文件定义了各类传感器的硬件参数、总线配置、寄存器序列等信息,为传感器驱动提供必要的初始化和运行参数。海思系列芯片适配OpenHarmony的传感器HDF配置HCS文件是传感器驱动开发的关键部分,通过合理配置可以实现各种传感器设备的驱动支持。

m0_67505153的博客 208

PHP代码保护终极指南:YAK Pro混淆器完整使用教程

在当今数字化时代,PHP作为最流行的服务器端脚本语言之一,广泛应用于网站开发和Web应用构建。然而,PHP的源代码易于被他人查看和修改,这对商业软件的安全性构成了严重威胁。**PHP代码混淆**技术应运而生,而YAK Pro混淆器正是这一领域的杰出代表。 ## 🛡️ 什么是PHP代码混淆? 当你分发PHP项目时,由于PHP是脚本解释器,你将同时分发所有源代码!出于各种原因,你可能不希望其他人

gitblog_00221的博客 668

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

混淆 php,开发简单的PHP混淆器与解混淆器

最近(被迫)拿到了不少经过混淆的PHP代码样本,尤其是我使用的某个开源软件里面竟然也有被混淆的PHP代码(还有几十个JS后门),导致我不得不把它们都解混淆来检查一下。不过,这些只要20分钟就能写出通用解混淆代码的混淆有什么意义呢?好想出去玩_(:з」∠)_但出不去,只好在家里应XCTF抗疫赛邀请出题了。但是实在没题出怎么办?恰巧看到Xray的一篇吐槽安全从业人员代码平均开发能力差的文章,考虑到解混...

weixin_34394265的博客 1397

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

PHP混淆与反混淆技术:从加密后门到可读代码

PHP混淆技术是网络安全领域的重要课题,它通过对代码进行加密、变形等处理,使恶意代码难以被检测和分析。本文将深入探讨PHP混淆与反混淆的核心技术,帮助安全人员和开发者识别加密后门,恢复可读代码,提升Web应用的安全性。 ## 什么是PHP混淆技术? PHP混淆技术是指通过各种手段对PHP代码进行转换,使其失去可读性但保留原有功能的过程。恶意攻击者常使用混淆技术来隐藏后门代码,逃避安全检测。常见

gitblog_00740的博客 446

终极指南:7个顶级PHP代码混淆工具保护你的源代码安全

在当今数字化时代,PHP作为广泛使用的服务器端脚本语言,其源代码安全面临诸多挑战。无论是商业项目还是开源应用,保护PHP代码免受未授权访问、篡改和逆向工程至关重要。本文将为你介绍7个顶级PHP代码混淆工具,帮助你有效保护源代码安全,确保项目知识产权不受侵犯。 ## 为什么需要PHP代码混淆工具? PHP作为解释型语言,源代码容易被直接查看和修改。代码混淆通过重命名变量、函数和类名,移除注释和格

gitblog_00293的博客 974

对数字进行 混淆 php,解密混淆的PHP程序

author: WeaponX0x01 背景团队大佬在做PHP代码审计的时候发现PHP代码是被混淆过的。虽然可以通过自己手动解密可以还原原先的PHP代码,但是混淆过程比较复杂且自己写脚本还原非常麻烦。所以,我这边通过PHP底层的操作对混淆后的PHP代码进行还原。0x02 PHP代码混淆PHP代码混淆一般来说有两种方法:需要PHP扩展无需PHP扩展本文我们主要讲解无需PHP扩展的代码混淆的解密。大多...

weixin_30857403的博客 740

PHP混淆加密以及常用的一些加密工具

PHP混淆加密是一种将源代码转换为难以理解和阅读的方式,以保护代码的。版权声明:本文为作者原创文章,转载请附上博文链接!以下是一些常用的收费加密工具,可以用于加密。a 替换为 a替换为。作者:Byte Beat。

Admans的专栏 4417

php代码混淆,防止被别人篡改

为了php代码安全,一般会对代码进行加密,防止因为别人篡改,导致代码无法正常运行。 偶然发现前辈对项目进行了混淆处理,之前因为水平有限,没怎么去关注这方面的技术。 后来每次项目提测,想要在centos环境上对php源码进行调试,看到的全是加密的代码,一点也不利于调试。 这些加密的代码见的次数多了,未免会有些好奇。 接下来,网上搜了一些资料,php混淆有Zend Guard、ionCube PHP Encode、Swoole Compiler、PHP Screw、PHP Screw plus、PHP

janthinasnail的博客 3612

php 代码交付 混淆,解密混淆的PHP程序

团队大佬在做PHP代码审计的时候发现PHP代码是被混淆过的。虽然可以通过自己手动解密可以还原原先的PHP代码,但是混淆过程比较复杂且自己写脚本还原非常麻烦。所以,我这边通过PHP底层的操作对混淆后的PHP代码进行还原。0x02 PHP代码混淆PHP代码混淆一般来说有两种方法:需要PHP扩展无需PHP扩展本文我们主要讲解无需PHP扩展的代码混淆的解密。大多数的无需扩展的php代码混淆原理上都是使用e...

weixin_39606911的博客 942

PHP后门分析实战:从混淆解码到防御加固的终极指南

你是否曾面对以下困境: - 拿到混淆的PHP后门代码无从下手? - 分不清c99Shell和r57Shell的功能差异? - 缺乏安全的后门分析环境导致误操作? - 不知道如何有效提取后门特征用于防御? 本文将系统解决这些痛点问题。基于PHP-backdoors项目(https://gitcode.com/gh_mirrors/ph/PHP-backdoors)的50+种真实后门样本,我们将通过

gitblog_00090的博客 964

php代码混淆器2.0.0版

php代码混淆器2.0.0版 PHP Obfuscator 2.0.0版 在网上搜索一下有很多 JS的混淆器并且效果很好,但就没有一个混淆PHP代码的工具。为了做PHP代码混淆本人在网上纠结了一段时间。国外的混淆工具也调试了几个,就没有对中文支持的。 之后花了一段时间,从

潇湘博客 1万+
上一篇: javascript:可以运行的噪音
下一篇: [译]Javascript 作用域和变量提升
SleepInDelphi
博客等级 码龄19年 32粉丝 388原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值