`

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 应用也许能从更加难懂的方案中获益更多。

 

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

101
48
分享到:
评论
1 楼 nodejs 2013-06-09  
不错,学习了。正在学习php。

相关推荐

    教师资格考试、教师招聘考试资料——心理学易混淆知识点.pdf

    教师资格考试、教师招聘考试资料——心理学易混淆知识点.pdf

    深度学习自学记录(3)——两种多分类混淆矩阵的Python实现(含代码)

    在深度学习领域,混淆矩阵是评估分类模型性能的重要工具,特别是在多分类问题中。混淆矩阵是一种二维表格,展示了模型预测结果与实际结果的对比,帮助我们理解模型在不同类别上的表现。它由True Positive (TP),True...

    php加密代码项目,php混淆加密源码下载

    在PHP开发中,有时为了保护源代码不被轻易读取和理解,开发者会采用混淆加密技术来提升代码的安全性。...通过了解和实践这个"php加密代码项目",开发者可以更好地掌握混淆加密技术,并在实际项目中应用。

    php混淆解密软件

    这就引出了我们今天要讨论的主题——“PHP混淆解密软件”。 PHP混淆是一种技术,它使得原始PHP代码变得难以理解,通常是通过改变变量名、函数名、增加无用代码等方式实现。混淆后的代码对于未经训练的人来说几乎...

    php代码混淆工具,WboxPhpEncrypt-setup.exe

    ———————————————— 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 原文链接:https://blog.csdn.net/m0_65494866/article/details/136736675

    php版js混淆加密插件

    这些链接可能包含了关于混淆加密的更多技术细节或教程。 在实际操作中,js混淆加密通常包括以下几个步骤: 1. 代码预处理:合并多个JS文件,删除无用代码,以及压缩代码(如通过jsmin.php)。 2. 混淆:使用特定...

    PHP源码混淆工具(带实例)

    "PHP源码混淆工具(带实例)"这个主题聚焦于如何通过特定工具来混淆PHP代码,以增加代码的可读性和理解难度,从而降低被恶意逆向工程的可能性。源码混淆是一种常见的代码保护技术,它通过将源代码转换为看似随机的形式...

    威盾PHP加密专家——php代码加密软件

    1. **代码加密原理**:威盾PHP加密专家可能采用了混淆、加密、解密算法等多种技术,将源代码转换成无法直接阅读的格式,使得没有解密密钥的人无法理解代码逻辑。 2. **安全性提升**:加密后的PHP代码可以有效防止...

    php goto混淆破解 反混淆

    php goto混淆破解

    php混淆类加密解密工具v1.0免费版.zip

    "PHP混淆类加密解密工具v1.0免费版.zip"正是针对这一需求提供的一款实用工具。本文将详细解析该工具的功能、原理以及使用方法。 首先,混淆是一种常见的代码保护手段,通过改变代码的可读性,使外部难以理解其内部...

    php源码混淆加密代码

    这里我们将深入探讨PHP源码加密的相关技术和实践方法。 首先,源码加密的目的是为了增加代码的不可读性和难以理解性。当源码被加密后,未经授权的人将无法直接查看和修改代码逻辑,这在一定程度上提升了代码的安全...

    《图像加密算法与实践——基于C#语言实现》.(孙燮华)(0520_).rar

    《图像加密算法与实践——基于C#语言实现》是一本深入探讨图像加密技术的专业书籍,由作者孙燮华编著。这本书主要针对计算机科学领域的安全和隐私保护问题,特别是聚焦于如何利用C#编程语言来设计和实现图像加密算法...

    Android SO文件保护OLLVM混淆加固——混淆篇(二)

    OLLVM在LLVM的基础上添加了混淆功能,包括控制流混淆(CFI)、数据流混淆(DFI)和名称混淆等技术,使得反编译后的代码变得难以理解和分析。 在对Android SO文件进行混淆之前,我们需确保具备以下条件: 1. 已安装...

    PHP最佳实践

    本文档意在为PHP开发者提供一份实用的指南,通过提供一些最佳实践,帮助他们更高效地解决PHP开发中的常见问题和任务,尤其是在涉及到复杂和不一致的实现时。 首先,文档指出PHP语言本身的复杂性。由于版本间的高度...

    PHP实例开发源码——PhpSpy 2008 WEB后门程序.zip

    3. **隐秘性与混淆技术**:后门往往采用各种混淆手段来逃避检测,比如使用Base64编码、字符串解密、随机变量名等。 4. **文件操作**:后门可能涉及读写服务器上的文件,包括日志、配置文件等,因此需要理解PHP的...

    众妙之门——JavaScript与jQuery技术精粹

    第二部分介绍了jQuery的实战经验,共5章,内容涉及jQuery容易让人混淆的几个方面,如何使用jQuery和PHP GD处理图像,用jQuery制作书签,jQuery的插件模式,最后介绍了各种jQuery插件以及选择依据。  《众妙之门...

    Android和PHP开发最佳实践

    在Android和PHP开发最佳实践中,我们探讨的是如何高效地结合这两种技术来构建强大的移动应用程序。Android作为Google主导的开源移动操作系统,广泛应用于智能手机和平板电脑,而PHP则是一种流行的服务器端脚本语言,...

    混淆.docx————电子版_docx版

    混淆.docx————电子版_docx版

    php源代码混淆备注清除工具

    php源代码混淆备注清除工具这款工具能有效帮助php代码保护不被别人白嫖二次开发,工具当前是第一个版本可能存在BUG

Global site tag (gtag.js) - Google Analytics