M 首页 > 技术文档 > Apache/Tomcat > 文章查看

同类最新

相关文章


.htacess的帮助—可以解决大多数的问题

打印文档 收藏本文  
  自己翻译的,到后面的时候已经很不耐烦了,况且认为apache归于linux吧,
  1.什么是.htacess
  你可以通过它,在你的web directory或子目录下创建一个.htaceess,来控制你的server对request的回应,一个.htacess包含了一个或多个目录,它告诉了server如何行动,作为例子,你可以用它来保护你的password.
  下面是一些有用的细节:
  .htacess必须是一个明文;他包含了server的目录指示,一个一行;包含了对目录子目录的指示;在一个目录里的.htacess会覆盖在它的父目录里的.htacess,即以在父目录中的为准;如果有#,意味着为注释
  2.用htacess进行密码保护
  首先,.htacess是安全的吗?是的,如果你遵循一定的规则的话.如果某人得到了你的ftp-access的话,它就可以看到你的.htaccess,或是复本,被称为.htpasswd .
  规则如下:
  不要把你的.htpasswd放到与你的htaccess在同一个目录下,(确实有一些网管如此笨,以致与没有把htpasswd放到webroot的目录外),所以尽量把.htpasswd放到webroot的目录外,如果不能,那就只好把它放到一个”安全”的地方,把它起一个尽力变态的名字,象7qh9zki1aqlop2, 确保没有link可以到这个地方,并放置一个index.htm*在这个目录,这样会更安全. 如果你考虑使用php或者cgi的话,就要注意他们的安全了,因为他们可能会带进一些新的弱点. 当然并不是所有的web都允许这样作,但值得一试.
  3.如何保护拥有.htaccess的目录
  首先你的server必须支持.htacess,进入浏览器,输入.htacess的地址,看是否需要一个login
  3.1以www.5linemasu.com为例:
  你想保护的目录是/member,而且你的server支持你在webroot外存储文件,如/secure
  通过你的login和ftp进入到自己的目录,你会看到你有两个目录,www和secure,进入secure,查看你的path-line是/home/virtserv/secure/5linemasu 然后用editor编写:
  AuthUserFile /secure/5linemasu/.htpasswd
  AuthName Masu磗 Chamber
  AuthType Basic
  
  
  require valid-user
  保存为.htaceess,然后用ASCII-Mode ftp到你的目录,这样/home/virtserv/secure/5linemasu 就被设置成了644的权限,或者手动也可.
  3.2 现在是.htpassword 文件了
  你要作以下几项去安排你的帐号,打开一个dos窗口,在windows system中,
  然后输入telnet,看到提示后,敲入open server’s ip,输入你帐号,密码
  进入/secure,输入 *htpasswd –c .htpasswd wolf (第一个htpasswd无.,第二各有”.”,wolf是我们想加入的counts, -c 意味着你要先建立.htpasswd,)
  然后输入两遍密码,以此类推,加入你想加入的所有帐户(考,他妈的作者杀比啊)
  编辑完.htpasswd之后把它放到/secure里,权限为644
  4. .htpasswd的弱点
  你必须把.htacess放到你想保护的目录里,而.htacess又包含了.htpasswd的存放路径,它的危险在于任何进入你的存放.htaccess的目录,也即你想要保护的目录,的人都可以看到你.htacess,从而知道你的.htpasswd. 所以要设置.htacess的权限,设为644,r/w 权限,它的owner,r的权限group和others,于是问题就出在这了,.htaccess可以被public read,而如果你让public无法读的话,那么server也就无法读.htaccess了,这就会导致:每次你使用浏览器进入你要保护的area的话,只会得到403,forbidden的结果
  所以使用这种方法—设置权限为public,不让别人读你的.htaccess是行不通的
  5.那么如何解决这个矛盾呢?
  在创建了.htacces之后加入如下的语句:
  order deny,allow deny from all
  保存文件, ASCII-Mode 上传到webroot目录,设置权限为644,即可
  6. 配置 .htaccess
  任何COE 的使用者, 都会在public_html/目录里和根/里 和在server root 的任何子目录里建立 .htaccess 文件,主要的原因是:
  密码保护着私人的目录,而.htaccess基本上是附加的,没什么用途的附加品,对我的server配置来说它让你可以改变server操作你的目录和文件的方式. 注意到一些事情是被锁定了的,以保证尽可能高的安全性.这个.htaccess放在它起作用的目录下,它控制了它所在的目录及其子目录的设置与权限,所以你也可以在子目录里放入其他的.htaccess,而它会工作的很好,即会覆盖掉父目录里的.htaccess的设置.
  6.1 你可以加在.htaccess里的指示directive
  Allow
  Deny
  Order
  Require
  AddType
  AuthUserFile
  AuthGroupFile
  AuthType
  AuthName
  DefaultType
  ErrorDocument
  ForceType
  Options
  Satisfy
  看起来很复杂其实呢,很简单,后面会又这方面的例子
  6.2 举例
  l 拒绝某个domain进入目录
  在 .htaccess 加入:
  order allow,deny
  deny from 128.23.45.
  deny from 207.158.255.213
  allow from all
  这样任何来自以126.23.45打头的ip的来访者都无法访问这个目录,同理,来自207.158.255.213 也不行
  需要注意的是deny必须优先与allow
  l 对domain屏蔽某一类的文件
  .htaccess加入:
  Order Deny, Allow
  Deny from .thoseevilpeople.net
  这样.只有.gif文件被屏蔽掉了,对于那些来自.thoseevilpeople.net的人.既然有很多人有不只一个帐号,那么更多的是以这样的形式出现”只允许一个domain,就象下个例子一样,
  l 只允许某个domain,某个国家看到一类文件
  .htaccess contains:
  
  
  Order Allow, Deny //说明Allow优先于deny
  Deny from all
  Allow from .yahoo.com
  Allow from .it
  
  l 为目录加入某一MIME-TYPE的 文件
  AddType image/x-photoshop PSD
  这样就会使server声明 *.psd 在它的content-type中,于是如果浏览器知道photoshop的话,就会直接调用这个software,.你也可以这样写: AddType audio/x-dumbexample JPG
  重定向机器名
  进入.htaccess的入口
  更全的文档参看apache/doc,
  A.项目:
  Allow (all [domain list])
  Deny 同上
  Order (Allow,Deny or Deny,Allow)规定了哪个rules优先
  Requre (user [user list], group [group list] valid-user)
  如”Require User mark dave bud sean”,用户必须用这几个名字登陆
  AddType
  AuthUserFile (filename) 指定了password list的所在地
  AuthGroupFile 分类用户,使之易于管理,不常用
  AuthType (basis)
  DefaultType
  ErrorDocument (3-digit-code [filename or text or url]) 错误响应
  B.操作options
  这些是关闭的,但默认是打开的
  Satisfy(All,all)
  执行”Satisfy All”,如果你在一个目录里同时有Allow和require指示,可以使你密码保护一部分区域,使public无法看到,但可使特定的一部分人看到
  用来为特定的一类文件提供指示,
  

浏览: 来源:PhpMod.com 编辑:江江 发布时间:2005-08-26 07:23
Copyright © 2004 www.pclib.com All rights reserved.
Email:yehuo(at)163.com Oicq:35314270 桂ICP备05008870号