最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • PHP操作用户提交内容时需要注意的危险函数

    正文概述 转载于:掘金(硬核项目经理)   2021-03-27   763

    对于我们的程序开发来说,用户的输入是解决安全性问题的第一大入口。为什么这么说呢?不管是SQL注入、XSS还是文件上传漏洞,全部都和用户提交的输入参数有关。今天我们不讲这些问题,我们主要探讨下面对用户的输入,有一些危险的函数在未经验证的情况下是不能直接使用这些函数来进行操作的,比如:

    include($g);
    

    假设这个 $g 是用户提交的内容,我们在未经验证的情况下直接使用这个参数来包含文件,我们传递的参数为 ?g=/etc/passwd ,那么服务器上所有的用户帐号信息就很可能就直接泄露了。

    另外,一些执行 shell 命令的函数还是极度危险的。

    echo system($g);
    

    当我们传递的参数是 ?g=ls -la / 时,同样的服务器目录也展示了出来,这还仅仅是显示目录结构,如果使用其它更恐怖的命令后果将不堪设想。

    同理,我们经常会根据一些id或指定的文件名来操作文件,特别是在删除文件的时候,如果未加判断,那么也可能直接去删除某些非常重要的文件。

    unlink('./' . $g);
    

    我们继续将 $g 构造为 ?g=../../../xxxx ,如果在权限允许的情况下,就可以删除各种系统文件。

    对这些内容,其实在 php 的官方手册中就已经给出了一些很好的建议,我们不妨来直接看看 PHP 手册中是如何说的。

    很多 PHP 程序所存在的重大弱点并不是 PHP 语言本身的问题,而是编程者的安全意识不高而导致的。因此,必须时时注意每一段代码可能存在的问题,去发现非正确数据提交时可能造成的影响。

    必须时常留意你的代码,以确保每一个从客户端提交的变量都经过适当的检查,然后问自己以下一些问题:

    • 此脚本是否只能影响所预期的文件?
    • 非正常的数据被提交后能否产生作用?
    • 此脚本能用于计划外的用途吗?
    • 此脚本能否和其它脚本结合起来做坏事?
    • 是否所有的事务都被充分记录了?

    还可以考虑关闭 register_globals,magic_quotes 或者其它使编程更方便但会使某个变量的合法性,来源和其值被搞乱的设置。在开发时,可以使用 error_reporting(E_ALL) 模式帮助检查变量使用前是否有被检查或被初始化,这样就可以防止某些非正常的数据的挠乱了。

    其实,只要能遵守这些建议,大部分的安全问题都能得到解决。还是那句话,不能相信用户的任何输出,在测试的时候请做好各种验证,包括但不限于边界值、特殊符号、特殊命令、越界值、目录权限等。在非必要的情况下不要使用用户的输入作为包含文件、执行脚本及文件操作的直接参数,如果一定要用的话千万要进行各种形式的过滤验证。

    测试代码: [https://github.com/zhangyue0503/dev-blog/blob/master/php/202003/source/PHP%E6%93%8D%E4%BD%9C%E7%94%A8%E6%88%B7%E6%8F%90%E4%BA%A4%E5%86%85%E5%AE%B9%E6%97%B6%E9%9C%80%E8%A6%81%E6%B3%A8%E6%84%8F%E7%9A%84%E5%8D%B1%E9%99%A9%E5%87%BD%E6%95%B0.php]github.com/zhangyue050…

    参考文档: www.php.net/manual/zh/s…


    起源地下载网 » PHP操作用户提交内容时需要注意的危险函数

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元