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文件:

图片

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值