当前位置: 首页 > news >正文

2、文件上传漏洞的防范

原文地址:文件上传漏洞的防范 更多内容请关注:代码安全

PHP安全编码——书写安全的代码

文件上传漏洞的防范

提问

    问题1:上传漏洞是怎么产生的?
    问题2:是否可以只用js判断文件类型而php不判断?
    问题3:为什么必须用move_uploaded_file?

课程单元

    一个简单的文件上传例子
    文件上传漏洞是怎么产生的
    如何避免文件上传漏洞

1. 一个简单的文件上传例子

    这是一个简单的上传文件的html代码。

图片

    这是一个简单的上传文件的php代码。

图片

2. 文件上传漏洞是怎么产生的

    上面的文件上传的例子,没有对被上传的文件进行任何判断,这样用户可以上传一个.php文件,然后通过浏览器访问该php文件,来达到攻击的目的。

3. 如何避免文件上传漏洞

    1、js判断允许上传的文件类型
    2、php判断允许上传的文件类型
    3、使用move_uploaded_file
    4、web服务器增加配置

3.1.JS判断上传的文件类型

    在客户端提交文件上传之前,判断只允许上传指定类型的文件。

图片

3.2. php判断上传的文件类型

    在文件上传后,判断上传的文件类型,如果类型不对,则不执行上传操作。

图片

3.3. 使用move_uploaded_file

    bool move_uploaded_file ( string $filename , string $destination )
    本函数检查并确保由 filename 指定的文件是合法的上传文件(即通过 PHP 的 HTTP POST 上传机制所上传的)。如果文件合法,则将其移动为由 destination 指定的文件。
    在执行文件上传操作时,都必须用这个函数来移动上传的临时文件到正式目录下,而不能自己使用move方法来移动。

3.4. web服务器增加配置

    可以在web服务器中,配置保存上载的目录不能执行php文件,这样万一js或者php判断都不严谨,也不会出现问题。
    apache服务器配置不能执行php文件:

图片

相关文章:

  • 12、nRF52XX蓝牙学习(GPIOTE任务触发LED)
  • Python爬虫第11节-解析库Beautiful Soup的使用上篇
  • 安装NVIDIA驱动、配置docker运行时、docker部署GPUStack及ragflow集成GPUStack模型(WSL下ubuntu)
  • uniapp微信小程序基于wu-input二次封装TInput组件(支持点击下拉选择、支持整数、电话、小数、身份证、小数点位数控制功能)
  • iframe学习与应用场景指南
  • 【技术白皮书】外功心法 | 第四部分 | 数据结构与算法基础(常用的数据结构)
  • MySQL之事务理论和案例
  • SQLyog使用教程
  • ASP.NET中将 PasswordHasher 使用的 PBKDF2 算法替换为更现代的 Scrypt 或 Argon2 算法
  • 语音外呼提高CPS转化案例
  • 【教程】优化xrdp的性能
  • 数字内容体验构建品牌忠诚新路径
  • Open GL ES-> 工厂设计模式包装 SurfaceView + 自定义EGL的OpenGL ES 渲染框架
  • AI大模型学习七:‌小米8闲置,直接安装ubuntu,并安装VNC远程连接手机,使劲造
  • selenium元素获取
  • 【时时三省】Python 语言----正则表达式
  • 检测到目标URL存在http host头攻击漏洞
  • 北京市生成式人工智能大模型备案综合分析情况
  • 聚焦AI与大模型创新,紫光云如何引领云计算行业快速演进?
  • GoLand 标红但程序可正常运行:由符号索引缓存失效引起的假报错问题
  • 网站效果图可以做动态的嘛/网站优化排名优化
  • 日本 wordpress 主题/惠州seo怎么做
  • 在网站上做外贸/友情链接只有链接
  • 网网站制作/三只松鼠网络营销策略
  • 不懂代码如何做网站/网络营销推广实训报告
  • 金泉网做网站要找谁/农产品网络营销推广方案