PHP网络开发详解:文件上传漏洞

PHP网络开发详解:文件上传漏洞,第1张

;   ——此文章摘自《完全手册PHP网络开发详解》定价 ¥ 特价 ¥ 详细>>//track linktech cn/m_id=dangdang&a_id=A &l= &l_type = width= height= border= nosave>

    在很多网站中 特别是在论坛系统中 往往存在文件上传的功能 文件上传功能允许用户将本地的文件通过Web页面提交到网站服务器上 但是如果不对用户的上传进行任何限制的话 可能会对服务器造成很大的危害

     一个简单的文件上传页面

    以下代码是一个简单的文件上传页面     <php     if(isset($_POST[ form ]))     {         $uploadfile = upfiles/ $_FILES[ upfile ][ name ];                                                 //上传后文件所在的文件名和路径         move_uploaded_file($_FILES[ upfile ][ tmp_name ] $uploadfile);                                                                 //上传文件         print_r($_FILES);                                       //输出文件信息         die();     }     >     <>     <head>     <title>文件上传</title>     <meta equiv= Content Type content= text/; charset=gb >     </head>     <H >文件上传</H >     <form enctype= multipart/form data action= method= post >     <input name= upfile type= file >             <input name= form type= hidden value= form ><BR>     <input type= submit value= Submit >     </form>     <body>     </body>     </>     上面的代码将文件上传到网站服务器并存储在upfiles文件夹下 但是 由于上面的文件上传程序没有对上传的文件进行任何检查 用户可以通过该程序上传自行编写的PHP脚本到服务器上并通过浏览器运行 由于PHP脚本潜在的危害性 该漏洞可能会导致服务器的彻底崩溃及数据的丢失      漏洞防护措施     解决上面所述问题的一种方法是通过检查上传文件的类型来限制用户的文件上传 如以下代码所示     <php     if(isset($_POST[ form ]))     {         if($_FILES[ upfile ][ type ] == image/pjpeg )    //检查文件类型是否为JPEG         {             $uploadfile = upfiles/ $_FILES[ upfile ][ name ];                                                       //上传后文件所在的文件名和路径             move_uploaded_file($_FILES[ upfile ][ tmp_name ] $uploadfile);                                                                     //上传文件             print_r($_FILES);             die();         }         else         {             die( 上传文件的格式不正确! );         }     }     >

lishixinzhi/Article/program/PHP/201311/21477

题主你好,

从服务器上下载文件或向服务器上传文件最常用的命令当属scp了,使用方法也简单

一先说题主问题中的情况,即从服务器上往回拿文件(官话一点的表达:从服务器上将文件下载到本地):

scp 服务器用户名@服务器ip:文件的绝对路径 要将文件保存到本地哪

举例来说,我的服务器地址是1111,用户名为hellofriend,并且在服务器上的/home/hellofriend/下有个名为ok的文件,则我想将服务器上的这个ok文件下载到本地的根目录,/,下用到的命令为:

scp hellofriend@1111:/home/hellofriend/ok /

命令执行完成后,会提示你输入hellofriend这个用户的密码,密码输入完成后,回车,正常情况下,你在根目录下就能看到ok文件了

新手注意事项:

aip地址和文件路径中间有个冒号;

b文件路径一般用绝对路径,即从根开始找;

c不要忘了写你要将文件保存在本地的哪里;

-----

二再说如何将本地文件上传到服务器,这个不细说,命令和上面的差不多:

scp 本地的文件路径 服务器用户名@服务器ip:要保存在服务器的哪个位置

如我要将本地根目录下的ok文件上传到1111这台服务器的/home/hellofriend目录下,则命令为:

scp /ok root@1111:/home/hellofriend/

执行命令后,输入密码,回车,正常情况下文件就上传成功了

-----

写在最后: 上面命令写的其实相对死板一些,其实还有一些小技巧,题主用的多了就能了解了,这里先不过多展开

=====

希望可以帮到题主, 欢迎追问

Windows默认GBK编码,linux默认UTF-8,所以在Windows下上传的中文到Linux就会显示为乱码。

如果我们把Linux的默认编码改为GBK,就不会出现乱码啦。

修改xshell的编码方式:地球图标–Chinese Simplified。

使用locale命令查看linux编码方式。

export LC_ALL="zh_CNGBK" export LANG="zh_CNGBK"。

FTP服务器是在互联网上提供文件存储和访问服务的计算机,它们依照FTP协议提供服务。 FTP是File Transfer Protocol(文件传输协议)。

顾名思义,就是专门用来传输文件的协议。简单地说,支持FTP协议的服务器就是FTP服务器。

一般来说用户联网的首要目的就是实现信息共享,文件传输是信息共享非常重要的一个内容之一。

而各种 *** 作系统之间的文件交流问题,需要建立一个统一的文件传输协议,这就是所谓的FTP。基于不同的 *** 作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议,这样用户就可以把自己的文件传送给别人,或者从其它的用户环境中获得文件。

当然不行了,你这个是在本地做的文件 *** 作,而不是真正意义上的上传。
可以借助某些插件实现文件上传,比如smartupload、common-fileupload等。
要明白什么是上传!!!

使用SecureSRT中的SFTP传递文件夹时,有个小细节值得注意一下:
1)在文件夹名dirname后加上'/',传输后,目标位置没有新建文件夹dirname,只有dirname文件夹下的各个文件。

如:

sftp> get -r smsrc/

2)在文件夹名dirname后不加'/',传输后,目标位置新建文件夹dirname,所有文件位置新建文件夹dirname下。

如:

sftp> get -r smsrc


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/13132525.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-06-09
下一篇 2023-06-09

发表评论

登录后才能评论

评论列表(0条)

保存