原创 | PHP代码执行防御

admin 2024年10月15日10:01:48评论14 views字数 788阅读2分37秒阅读模式

导语:好久没写文章了,前段时间重回校园,诸事繁忙,为了生活,负重前行。这个系列的PHP安全开发,还是坚持写下去,毕竟对于安全来说,安全的开发尤其重要,对于Web开发的主流语言,PHP语言开发的Web应用系统,还是挺多的,尤为网站类,我好多年做的几个网站存活的还有几个,微信公众号让我们的企业站点越来越少,技术的更新迭代越来越快,加快学习的步伐,方能立身。我是小浪,你们准备好了吗?各位道友!文末有惊喜!

原创 | PHP代码执行防御

escapeshellarg()、escapeshellcmd()函数用来保证传入的命令执行函数里的参数确实是以字符串参数的形式存在的,不能被注入。

escapeshellarg()函数使用示例:

<?php    system('ls'.escapeshellarg($dir));?>

escapeshellarg()将字符串增加一个单引号,并且能引用或者转码任何已经存在的单引号,以确保能够直接将一个字符串传入shell函数,并且是安全的。

escapeshellcmd()对字符串中可能会欺骗shell命令执行任意命令的字符进行转义。该函数保证用户输入的数据在传送到exec()函数或system()函数或执行操作符之前进行转义。

escapeshellcmd()函数使用示例:

<?php    //故意允许任意数量的参数    $command = './configure' .$_POST['configure_options'];  $escaped_command = escapeshellcmd($command);  system($escaped_command);?>

escapeshellcmd()函数应被用在完整的命令字符串上。即使如此,攻击者还是可以传入任意数量的参数。应使用escapeshellarg()函数对单个参数进行转义。

 

原文始发于微信公众号(船山信安):原创 | PHP代码执行防御

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年10月15日10:01:48
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   原创 | PHP代码执行防御https://cn-sec.com/archives/3268911.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息