也不见得777别人就可以删除你的东西了
chmod 777是为方便使用

解决方案 »

  1.   

    只不过如果是.txt的他如果知道名字和路径就可以直接打开,只要有数据库就还可以,
      

  2.   

    不懂 最近我也搞这个 进来顶一下 关注ing
      

  3.   

    如果别人要删除的话,php如果有做防范的话,他必须可以登陆到你那个服务器上对不对?
    普通用户那种不算的,
    比我我以前在意个服务器上写东东,我得东西穿上去了,然后运行我得php文件管理器,进入了系统根目录(服务器设置很差哦),就可以删除别人咚咚了
    呵呵
      

  4.   

    xuzuning(唠叨)说是当这个文件被访问了,服务器会执行这个文件。
    如果是apache要设置php的基本路径。这样这个目录下
    的php文件不会读到外面目录了。
    一般设置为755吧
      

  5.   

    呵呵,我就是这个文件是怎么被访问?在浏览器下访问文件只能是下载(.php 等Apache执行脚本除外)。
      

  6.   

    做了一个测试;
    测试目录dir_a,测试文件a.htm,a.php
    将dir_a设为:404=444(public可读,不可执行),a.htm,a.php均无法访问;
    405=445(owner不可执行,public可执行),a.htm可访问,a.php不可以执行;
    505=555(owner可执行,public可执行),a.php可以执行了;上面设置均不可以执行ftp操作,因为没有写的权限!
    605=645(owner可写),可以操作ftp对a.htm,a.php进行操作了;
    注:如果您的网站全是由.htm组成,您可以设到此为止了!这里是php版块,我们都要用.php的,所以:
    705=755(owner可写),这个应是我们需要的设置了!
    ------------------------------------------------------------------------
    因为我的服务器里没有组,如果您的服务器中有组,那么相应的设置权限应为所面的数字!
    即我们需要的基本设置应为755;
    这个数字也是我们用ftp软件创建目录时的初始数值!
    707=777权限,真的很危险吗?
    我认为在这个目录下放一些纯静态页.htm,.jpg...是没有任何危险的!那您说了,要是坏人放了.php/.cgi,岂不是很危险了!
    但是,坏人怎么才能把.php文件放进我们的dir_a中呢?
    应有有两种方法吧!1.有是服务器管理权限或是对这个目录的owner(就是我自己),往里放东西,这需要密码的,我们只要保护密码就好了,服务器因为漏洞被人拿到了管理权限,那就不是这个目录的安全问题了!2.通过客户端上传;我们要严格过滤.php,.swf,.css文件的上传就好了,我们在上传时检查类型,只要不是jpeg类型就不让上传,只要不是.jpg后缀就不让传!------------------------------------------------------
    一直也为这个问题所困扰着,因为我现在用的是虚机,因为服务器有log统计功能,所以根目录就是777
    在根目录下,只要mkdir(testdir,0755)就可以创建目录了,我整日的担心!现在正好遇到这个问题,所以也讨论下!
      

  7.   

    ==> 该文件被连接楼上能说明白些吗?举个例子……以win32系统为例,因为在win32系统中可执行文件都有特定的后缀。而linux下是通过授权时某一文件可执行,危险性更大比如在网站目录下有一个foo.exe文件,当你在服务器上双击他时。foo.exe将被执行,并产生一个等待用户输入的对话框。
    如果这个目录是可执行的话,http;//localhost/foo.exe同样使foo.exe在服务器上执行。但因为通常你并不可能到服务器上进行操作,于是这个进程将因等待输入而被挂起。如果这个程序会执行一些有害操作的话,后果是可想而知的。
    但如果这个目录是不可执行的话,则http;//localhost/foo.exe只会产生下载动作。
    所以,网站目录是不应该同时具有“写”和“执行”的权限的。因为可写,则危险程序可被置入服务器上,因为可执行,您的服务器将因此而崩溃
    这个道理应该不会不明白吧?如果你使用iis做服务器,当你试图同时赋予某个目录“写”和“执行”权时,iis就会向你发出安全警告。
    通常web服务器上只有一个目录是可执行的——cgi-bin
      

  8.   

    老大呀,真不知道你的分都从哪来的……假设你是黑客……就先说说你怎么把文件放上去的?途径是什么?
    别告诉我你用FTP哦,用FTP的话,目录权限也没什么意义了。
    我不相信你能用什么办法把文件放到服务器上去,就因为目录是777,而不是通过上传页面。
    如果是通过上传页面的话,可上传的文件类型就完全控制在上传页面。就算你把文件放到服务器上了,你通过什么方式执行它呢?
    就凭你CALL一个URL?
    告诉你Web Service发布的是一种服务,而不是让你随意去bash的。
    http是一种传输协议而已,你在浏览器里输入的,只是向服务器发出一个请求;
    如果是普通文件,服务器就把文件内容传输给你;
    如果该请求的文件类型是可执行的,服务器就先运行把结果传给你;
    但这个可执行的,只是被Web Service执行的东西;根本不是你想像中的被系统执行。
    要被系统执行的话,不就成 PcAnyWhere 了。就算把/bin设置成发布目录,http://xxxxxxx/ps也只是把ps给下载了,而不是现实系统进程!!!不要说你通过什么Unicode漏洞哦,那与目录权限没有关系了。
      

  9.   

    WIN2K+IIS下,如果目录是执行许可为脚本和可执行程序.那么,连接一个可执行文件,在客户端会出现下载提示框...而在服务器端,将会产生一个可执行文件的进程...我试过的!
    APACHE下没试过.
      

  10.   

    真还没有试过.exe能通过http协议在服务器端开进程!
    我觉得,Mistruster(弱智d) 说的有道理!
    Web Service只是提供他能执行的服务!
    --------------------------------------
    比如让iis执行.php,要在iis中填加此服务才行;如果扩展名、类型及对应的执行程序,iis认不出,他是不会执行的!
    apache也应是一样的;
    --------------------------------------
    服务器端认不出的文件,全是下载的;如果真要是同时在服务器端又执行了;太可怕了!
    ----------------------------------------
      

  11.   

    光是猜测是没有用的,实践一下就知道了。
    你只要用c或其他高级语言写一个简单的计数器,编译成exe或dll文件。然后把他放到网站的cgi-bin或scripts目录下。在浏览器中输入http://localhost/cgi-bin/xxx.exe,看看都会有什么结果。
    既然都承认“如果该请求的文件类型是可执行的,服务器就先运行把结果传给你”了,那么你的立论就已经不成立了。不知你对“服务器就先运行”做何解释。“服务器端认不出的文件,全是下载的”这是错误的说法,应该是“浏览器认不出的文件,全是下载的”“比如让iis执行.php,要在iis中填加此服务才行”
    这是什么原因呢?因为.php文件是脚本文件,需要启动php解释程序进行解释执行。如果不告诉服务器用什么程序来解释.php那服务器就只有把.php文件交给浏览器处理了
      

  12.   

    to surfchen(冲浪):
    你自己都说了:如果目录是执行许可为脚本和可执行程序
    许可可执行程序,当然就可以执行了,这相当于你赋予IIS执行.exe的权利了;
    作为 Web Service 允许它执行什么,它才可以执行什么;-----------------------------------------Windows下有个名词叫“文件关联”是说用一个应用打开另一个应用;
    用NotePad可以打开.txt的文件,也可以打开.exe的文件,但只能看到.exe文件的内容,而不是去执行它Web Service也是一样,当你不告诉它怎么去执行一个文件的话,它只是从磁盘上把文件读取发送给用户
    比如说.jpg文件,在客户端看来它是一张图片显示出来,而在服务端它只是个普通文件传送给你就够了-----------------------------------------chmod 777基本上说的是类Unix系统上的。
    第一个7的位置是说该文件/目录的 拥有者 的权利与限制
    第二个7的位置是说该文件/目录的 拥有者所在的用户组成员 的权利与限制
    第三个7的位置是说该文件/目录的 其它所有人 的权利与限制
    但怎么说都必须是该系统的用户,如果不是用户怎么也不可能操作(即使是匿名,它也是个用户)访问一个网站,一般来说服务器端赋予的用户名是Nobody
    但这个Nobody被赋予的权利只是访问而已,
    就算可以让他rm ls mkdir,他怎么执行这些命令,不还是要真正的登陆服务器才可以;说的再明白些,一台电脑再强大,如果没有电,它怎么也不可能运行的
    Web Service提供的只是发布,并没有提供操作系统!!!
      

  13.   

    to xuzuning(唠叨):
    I服了U了,
    你允许.exe和.php的执行,把它放上去,它当然会执行了,它要不执行,服务器一定有问题
      

  14.   

    你用IIS做服务器把目录权限设置成可以脚本执行的,不还是要指定可执行什么吗
    这不就相当于Apache里的 AddType application/x-httpd-php .php6
    如果没有这句话,你的.php6怎么执行,就算你把目录权限设置成7777……
      

  15.   

    问一下唠叨老大。
    我的wwwroot设置为711才可访问,设置为710就提示无权限访问,请问是为什么?
      

  16.   

    to 深空老大:
    711和710的区别是public是否可执行!
    我访问网站都是public身份通过webservice来访问服务器!to 唠叨老大“服务器端认不出的文件,全是下载的”这是错误的说法,应该是“浏览器认不出的文件,全是下载的”
    ------------------
    服务器端是通过识别文件后缀来确认是不是要解析的哟~~
    比如我们的apache,一般都对.htm/.html/.cgi/.php 做识别!
    但你把一个.php文件改名为.phpt
    那服务器就不识别啦!
    直接推给浏览器!
    浏览器就按类型进行识别,把整个文件内容都显示出来,如果是2进制的东西,就强制下载了!
    -----------------那么在linux下,没有什么所谓的.exe的概念,(只为这贴子是讨论777的,win2k没有777的概念)
    讨论win2k的777根本没有任何意义!
    按老大的说法,只要web service 不识别这个文件的后缀!
    这个文件就会自动在服务器开线程运行了~~~那么这个文件是以谁的身份打开的呢,linux下有nobody,win2k中有guest;
    那么一台服务器,是不可能给这两个用户开登录权限的;登录都不行,更何况是去执行呢~~?老大一直说编个.exe ,让它去执行;但这个.exe是通过isapi接口来实现的;
    如果webservice没有允许.c/.perl语言进行.exe的编译能力,他一样不能运行;
    如果编一个webservice 没有扩展到的.c语言的功能,他一样也是不能运行;老大说的.exe,其实就我们的用top在服务器端看到的php线程!
    用c写出来的.exe,就是服务器端语言,由webserice来解释并执行!.exe==.isapi==.php==.asp
      

  17.   


    我的wwwroot设置为711才可访问,设置为710就提示无权限访问,请问是为什么?
    ----------如果webservice(apache)是该文件的所有者和同组人.你设为710也可以执行.
    如果webservice(apache)是该文件的所有者,你设为700也可以执行.
    而偏偏这个文件对于apache来说是其他人,所以httpd服务无法操作此文件.故而.在windows桌面环境下可执行.(foo.exe),用浏览器向WEB服务器请求foo.exe,该文件不一定会执行.
    除非WEB服务器要求其执行.而777在*nix下说的也是在本机可执行.但WEB请求时,要看WEB服务是否要求其执行.即是否设为CGI(可执行权限).这也是PHP以模块方式加载比CGI方式加载安全的原因.