首页 > 后端开发 > 正文

PHP的开发效率比java要高,为什么现在java这么流行?

2025-02-15 14:52:01 | 我爱编程网

今天我爱编程网小编为大家带来了PHP的开发效率比java要高,为什么现在java这么流行?,希望能帮助到大家,一起来看看吧!

本文目录一览:

PHP的开发效率比java要高,为什么现在java这么流行?

OneThink1.0文件缓存漏洞分析及题目复现

极客巅峰CTF中遇到OneThink1.0的文件缓存漏洞,初步误以为ueditor文件上传问题。

访问题目页面,确认是OneThink1.0的CMS。使用网站扫描器进行目录扫描及源码泄露扫描,发现存在泄露的压缩包 www.zip 。

源码下载后,使用Seay源码审计工具分析,发现缓存文件路径配置在ThinkPHP/ThinkPHP.php中定义为Runtime/Temp。在Conf/convenion.php中,同样定义了DATA_CACHE_PATH为Runtime/Temp。在Cache/Driver/File.class.php的构造函数中,File缓存类的options['temp']设置为DATA_CACHE_PATH,因此缓存文件存放路径为Runtime/Temp。

File缓存类中的set函数在写入缓存内容时,会将内容写入到$filename路径的文件中,其中$filename是由filename($name)函数返回。name函数中,由于FIle类的options['prefix']为全局设置的空值’’,且DATA_CACHE_SUBDIR配置为false,导致$file为空+$name+.php。$name为onethink_+md5(md5($name)),所以filename函数返回值是onethink_+md5(md5($name)) + .php。

set函数中,传入的$value参数经过serialize序列化函数处理后赋值为$data,并最终作为写入内容。写入前,$data会被字符拼接,并在前面添加字符。

缓存函数S在ThinkPHP/Mode/Api/functions.php中被使用,使用了File缓存类的set函数。传入的$name和$value参数来自调用上层的传参$name和$value。具体调用情况在Appalication/Common/Api/UserApi.class.php中的get_username函数逻辑中发现,通过从数据库查询uid返回的用户信息提取第二项拿到的,即写入了临时文件。

继续追踪get_username函数的调用情况,定位到Application/Home/Model/MemberModel.class.php模型文件中的autoLogin函数和login函数。分析发现,login函数将传入的uid进行判断,如果是已注册用户,直接调用autoLogin函数并将数据库查询结果作为$user参数传入。在autoLogin函数中,将$user中的uid继续传入get_username函数。

整个逻辑中,用户的用户名作为缓存项写入了Runtime/Temp的临时文件中,且对用户名未进行过滤和转义。若缓存文件存在访问权限,可能导致代码执行或GetShell。

利用漏洞尝试执行phpinfo,注册用户包含特殊字符,通过Burpsuit拦截修改后注册成功,登录界面进行登录后同样修改数据包。用户登录成功后,访问缓存页面,成功执行phpinfo。本地环境测试验证,发现缓存文件内容。使用相同方法向缓存文件中写入代码执行。

感谢阅读。

PHP的开发效率比java要高,为什么现在java这么流行?

PHP的开发效率比java要高,为什么现在java这么流行?

首先,你说的PHP比Java开发速度快,这点是在业内达成共识的,Java薪资这块普遍比PHP的高,开发效率反而更慢,这点也是实际情况。那为什么导致这种“倒挂”现象呢?在这里我们具体分析一下两者的特点优劣:

1、开发速度上:

在开发速度上,PHP开发起来比Java要快,所以项目周期也会缩短。因为PHP内置函数库是很强大的,它更适合做“胶水语言”,作为大前端开发语言是很合适的(因为前端逻辑可能会经常变动)。

2、性能上:

在小型项目上,PHP的性能高于Java性能(Java对于服务器硬件要求比PHP要高很多,占更多资源);但在大型项目上,Java的稳定性比PHP要强几个档次,性能上也是。总之PHP更适合只做中小型网站、或者大型网站的前台。

3、安全性上: 我爱编程网

PHP在安全性上虽比其它脚本语言高,但如果开发者不留意,还是容易形成很多漏洞,因为PHP本身是弱类型语言,而Java是强类型语言,在安全性上高于PHP。所以一般银行系统都是清一色的Java。

综上,PHP被人评价为“脏而快的语言”,Java则更权威一点。所以在大型项目上,更多的是会选Java而不考虑PHP,PHP只适合做网站型应用。Java在开发速度上较慢,但换来的是稳定性的持续。

禅道系统权限绕过与命令执行漏洞分析

我爱编程网(https://www.52biancheng.com)小编还为大家带来禅道系统权限绕过与命令执行漏洞分析的相关内容。

禅道系统权限绕过与命令执行漏洞分析

禅道系统作为一款流行的开源项目管理软件,在2023年初被爆出存在野命令执行漏洞,该漏洞源于系统权限认证缺陷。攻击者利用该漏洞,即使未授权,也可在服务器上执行任意命令。本文将分享该漏洞的研究和复现过程,旨在提升安全意识和提供学习参考。请注意,传播或利用文档中的信息造成任何后果与损害,均由使用者本人负责,作者对此不负责任。

影响范围与复现环境

本文研究与复现环境配置如下:操作系统为macOS 13.1,运行环境包括nginx1.5、php7.4和mysql5.7,使用禅道软件版本zentaopms-zentaopms_18.0.beta1。权限绕过的关键点在于module/common/model.php文件中的checkPriv函数。该函数用于验证当前登录用户是否有访问特定模块与方法的权限,但在无权限访问时会抛出异常,却未终止程序,仅输出权限不足信息。具体代码中,通过commonModel::hasPriv()验证权限,无权限访问会执行deny方法,最后验证无权限执行helper::end(),导致异常抛出并进入try cache逻辑。

绕过权限的关键在于构造一个合法的session['user'],使权限检查函数失去作用。经过审计发现,captcha函数可以写入一个自定义key的session,通过此方法生成一个用户session,实现绕过。然而,实际测试显示,绕过权限后,仅能访问公共模块,因为系统还基于userid或level进行权限验证,限制了对特定资源的访问。

命令执行漏洞分析与利用

权限绕过是实现命令执行的关键。禅道系统后台存在多个sql注入及命令执行漏洞,本文提供了一种后台命令执行的方法。在绕过后,需要分析后台命令执行点。审计代码后,锁定在module/repo/model.php文件的checkConnection函数,其中的$client参数成为命令注入的入口。完整利用过程涉及多个函数调用:module/repo/model.php->create->module/repo/control.php->edit->module/repo/model.php->update->checkConnection->exec。

实际复现步骤包括进入创建仓库函数、编辑代码仓库、跟踪到update函数并设置scm为Subversion以触发命令注入。具体步骤如下:进入创建仓库函数,当scm类型为Subversion时,后续控制可实现命令注入;编辑代码仓库,通过post提交进入update函数;跟踪到update函数,将scm设置为Subversion,触发检查svn服务器连接过程;在check svn服务器version时,将$client拼接到执行的versionCommand中,导致命令执行。

修复建议

禅道官方已发布修复版本,建议受影响用户及时升级至安全版本。若无法升级,可在module/common/model.php文件中在echo $endResponseException->getContent();后添加exit();以修复权限绕过漏洞。此外,可关注烽火台实验室公众号获取漏洞自检脚本,用于检测系统是否存在漏洞,确保安全。

以上就是我爱编程网整理的PHP的开发效率比java要高,为什么现在java这么流行?相关内容,想要了解更多信息,敬请查阅我爱编程网。更多相关文章关注我爱编程网:www.52biancheng.com

免责声明:文章内容来自网络,如有侵权请及时联系删除。
标签: PHP
与“PHP的开发效率比java要高,为什么现在java这么流行?”相关推荐
java程序的运行流程 java开发流程
java程序的运行流程 java开发流程

简述Java应用程序的开发流程Java应用程序的运行经过编写、编译、运行三个步骤。第1步,编写程序。使用记事本或其他软件编写程序的源代码,将源代码保存为文件filename.java文件。第2步,编译程序。在MS-DOS命令窗口,将当前目录转换到Java源程序所在的保存目录;输入“javacfilename.java”形式的命令进行程序编译。第3步,执行程序。在同样的命令窗口中

2024-05-10 12:05:03
PHP软件开发中如何提高项目的运行效率
PHP软件开发中如何提高项目的运行效率

PHP软件开发中如何提高项目的运行效率PHP软件开发中如何提高项目的运行效率如何提高PHP程序执行效率?编程习惯分析,PHP程序原本是解释性程序语言,其执行速度本来就不高,如果在日常开发中不注意编程习惯就很难提高其执行效率,下文从PHP编程和mysql数据效率两个方面分析哪些提高其执行效率的要点PHP软件开发中如何提高项目的运行效率一、PHP提高效率的要点1、如果能将类的方法

2024-08-26 10:52:27
简述java程序运行流程 简述Java应用程序的开发流程。
简述java程序运行流程 简述Java应用程序的开发流程。

简述Java应用程序的开发流程Java应用程序的运行经过编写、编译、运行三个步骤。第1步,编写程序。使用记事本或其他软件编写程序的源代码,将源代码保存为文件filename.java文件。第2步,编译程序。在MS-DOS命令窗口,将当前目录转换到Java源程序所在的保存目录;输入“javacfilename.java”形式的命令进行程序编译。第3步,执行程序。在同样的命令窗口中

2024-04-27 02:38:35
java如何开发手机程序(java开发手机app的流程)
java如何开发手机程序(java开发手机app的流程)

java如何开发手机程序(java开发手机app的流程)一。下载并安装java环境jdk1.4以后版本大于1.4都可以。去sun的官网上下载二。下载并安装sun提供的专门开发手机软件的java微型版,即j2me开发工具,又叫WTK全称(WirelessToolkit)目前版本WTK2.5.2去sun的官网下载如果只用写字板,记事本之类的开发工具的话,现在就可以开发了,运行WTK

2024-06-11 05:03:06
java开发对电脑配置有什么要求?
java开发对电脑配置有什么要求?

java对电脑的配置要求是?如果是学习一些基础的编程一般的机器就可以了!如果将来要运行j2ee等等建议你的本本配置高一点不过主要还是CPU和内存内存推荐512最好1G太低的话跑不动JBUILDCPU>=P42G双核的最好,以下为最低配置:CPUIntel或者兼容微处理器,奔腾166MHz及其以上内存最低32MB,可以运行图形界面的JavaAppli

2024-03-19 06:22:06
java的开发环境是什么?
java的开发环境是什么?

java的开发环境是什么?java需要JDK来提供他的运行环境,装好JDK并设置好环境变量之后,就可以进行JAVA开发了,用文本文档就可以编写JAVA源码。不过为了提高编码质量和编写速度就需要一些开发工具了。开发工具我觉得最好用也是功能最强大的的就非eclipse莫属了,它是免费的,myeclipse要收费不过网上有好多注册码,要进行web开发的话就弄一个myeclipse吧。当然ecl

2024-06-09 20:32:04
php 一个函数效率高 还是一个类 效率? 哪个好
php 一个函数效率高 还是一个类 效率? 哪个好

php一个函数效率高还是一个类效率?哪个好从效率上来说,直接写一个函数要比写一个类的执行效率要高,因为类的话编译时候还要考虑实例化、继承、公有私有等等一大堆面向对象的机制,执行效率自然会比函数低。但是,对于人类来说,面向对象简化了很多逻辑,因此会方便你写代码。写代码就是这样,要么你累一点计算机就轻松一点,要么你轻松了,计算机就累了!Php类和函数有什么差别楼主得去多了解一下

2024-07-24 19:13:11
开发java用什么软件?
开发java用什么软件?

开发java用什么软件?java软件开发常用的软件有:JDK、NetBases、JBuilder、Eclipse、Eclipse、MyEclipse。1、JDK是java初学时用的,很麻烦的,其实编程工具里面应该不包括它,只是支持java的底层工具;2、NetBases是java开发桌面应用程序用的;3、JBuilder是开发Web应用程序的,几年前比较流行,但是JBui

2024-05-08 15:18:08