命令执行漏洞的防御

不执行外部的应用程序或命令

尽量使用自定义函数或函数库实现外部应用程序或命令的功能。 在执行system、eval等命令执行功能的函数前,要先确定参数内容。

使用escapeshellarg函数处理相关参数

Escapeshellarg函数会将任何引起参数或命令结束的字符进行转义,如单引号"'"会被转义为"\’",双引号“””会被转义为"\"",分号";"会被转义为"\;",这样escapeshellarg会将参数内容限制在一对单引号或双引号里面,转义参数中所包含的单引号或双引号,使其无法对当前执行进行截断,实现防范命令注入攻击的目的。

使用safe_mode_exec_dir执行可执行的文件路径

将php.ini文件中的safe_mode设置为On,然后将允许执行的文件放入一个目录中,并使用safe_mode_exec_dir指定这个可执行的文件路径。这样,在需要执行相应的外部程序时,程序必须在safe_mode_exec_dir指定的目录中才会允许执行,否则执行将失败。

PHP命令注入攻击漏洞是PHP应用程序常见漏洞之一。国内著名的PHP应用程序,如discuz!、dedecms等大型程序在网络中均被公布过存在命令注入攻击漏洞,黑客可以通过命令注入攻击漏洞快速获取网站权限,进而实施挂马、钓鱼等恶意攻击,造成的影响和危害十分巨大。同时,目前PHP语言应用于Web应用程序开发所占比例较大,Web应用程序员应该了解命令注入攻击漏洞的危害,修补程序中可能存在的被黑客利用的漏洞情况,保护网络用户的安全,免受挂马、钓鱼等恶意代码的攻击。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。