zoukankan      html  css  js  c++  java
  • apache中禁止一般用户访问后台特定目录

    这个技术非常重要,能够控制一些非法用户访问本内容。假设我们的网站: http://192.168.0.8/phpmvc/guide/WEB-INF 是我们的后台管理目录,我不允许一些非法用户进行访问,那么我就必须设定对该目录访问是需要验证的。

    方法:

    1、打开apache的配置文件httpd.conf,在文件末尾加入如下代码:

    <Directory "D:/programs/workspace/phpmvc/guide/WEB-INF"> 

    authtype basic 

    authname "Private" 

    authuserfile D:/programs/Apache2/bin/admin.dat  //保存认证信息的文件

    require user feng  //‘feng’需要认证的用户名,也可以用别的用户名 

    Options Indexes FollowSymlinks MultiViews 

    AllowOverride None 

    </Directory>

    2、打开命令提示行,切换到apache的bin目录下(如:D:\programs\Apache2\bin)。

    3、运行命令htpasswd -c admin.dat feng进行密码的设置,也可以用别的用户名,但应该与上面设置的用户名一至。

    4、设置完后重起apache。

    关于apache的rewrite模块、禁止某IP访问才以及404的设置 

      
    1 rewrite模块 
    1. 去掉注释LoadModule rewrite_module modules/mod_rewrite.so 
    2. 修改AllowOverride为 All 
    <Directory "D:/www"> 
      AllowOverride All 
       Order allow,deny 
        Allow from all 
    </Directory> 
    3. 在www文件下建个.htaccess文件 
    内容如下: 
    RewriteEngine   on 
    RewriteBase     / 
    RewriteRule     (.+)\.html$ aaa.php?id=$1 [L] 

    就可以通过 http://localhost/456.html 来访问 http://localhost/aaa.php?id=456 

    2 禁止某IP访问才以及404的设置 
    <Directory "D:/www"> 
    Options Indexes FollowSymLinks     //去掉Indexes可禁止目录访问 
       ErrorDocument 404 /missing.htm  //404错误显示,missing.htm要大于512字节 
       Order allow,deny         //设置allow,deny顺序 
        Allow from all 
        Deny from 111.111.111.111    //禁止IP访问,也可用*号 
    </Directory>
     
     
    基于Apache 配置文件的Web页面访问权限控制 

    假设你有一些敏感的信息要放在Intranet/Internet上,你首先可能会想到自己开发一个用户身份认证的系统来保护你的Web页面。其实Apache本身就自带了限制用户访问Web页面的机制,实现起来也不复杂。 

    本文介绍在Linux+Apache上的实现方法: 
    1、修改http.conf 
    假设你想控制/usr/local/apache/htdocs下各目录的不同访问权限,你可以在<Directory "/usr/local/apache/htdocs">与</Directory>之间加入一行: 
    AllowOverride All 
    意思是在/usr/local/apache/htdocs下不同目录的访问权限由该目录下的.htaccess文件来控制,而且不同目录的权限策略可互相覆盖。 
    2、编辑你想要控制的目录下的.htaccess文件 
    假设你的phpmyadmin目录在/usr/local/apache/htdocs下,你可以这样在phpmyadmin目录下创建一个.htaccess文件,内容如下: 

    AuthUserFile /usr/local/apache/pass/pwdPhp 
    AuthType Basic 
    AuthName "Database Security Zone" 
    ErrorDocument 401 /catchErrors/err_401.html 
    <Limit GET POST> 
    require valid-user 
    </Limit> 

    该文件说明了几个问题: 
    (1) 用户信息存放在/usr/local/apache/pass/pwdPhp中. 
    (2) 认证类型为基本型(此外还有一些其他的加密类型). 
    (3) ErrorDocument 所指向的html文件. 
    (4) 认证方式:用户认证(valid-user)或组认证(valid-group). 

    3. 生成用户密码文件 
    有一个用户密码生成程序:htpasswd(在/usr/local/apache/bin下), 它可以加入用户密码信息到指定的文件中,如/usr/local/apache/pass/pwdPhp. 我的用户密码文件内容如下: 

    admin:a0Hplbj33QjV2 
    guest:R0BYSO383QjVT 

    4. 重起apache deamon 
    /usr/local/apche/bin/apachectl restart 

    5. 测试 
    用IE浏览受保护的页面,如http://ip/phpmyadmin/ (可能需要refresh几次才能凑效),这时应该出现一个身份认证窗口,你需要输入用户名(admin / guest) 和密码(******)才能访问这个页面。
     
     
    apache禁止访问目录列表

    找到Apache 的 httpd.conf 配置文件将: 

    Options Indexes FollowSymLinks 改为: 
    Options FollowSymLinks 也就是把 Indexes 去掉。 

    额外的信息:在apache中设置虚拟主机 

    在IIS中我们可以方便的通过不同的IP或者端口再或者主机头来设置虚拟主机, 
    在apache中也一样可以。 
    假设有www.songzi1.org和www.songzi2.org两个域名,要同时指向一个服务器地址, 
    通过这两个域名访问时,要呈现不同的内容,那就需要设置虚拟主机了。 


    #Vi /etc/apache/httpd.conf 


    加入: 

    引用: 


    namevirtualhost * 
    <VirtualHost *>ServerName www.songzi1.org DocumentRoot /var/www/songzi1 </VirtualHost> 

    <VirtualHost *>ServerName www.songzi2.org DocumentRoot /var/www/songzi2 </VirtualHost> 
  • 相关阅读:
    IOS开发之——绘图(CGContext)
    网站相关人员信息记录humans.txt
    统一代码风格工具——editorConfig
    Bootstrap自动定位浮标
    Bootstrap图片轮播
    Bootstrap手风琴效果
    Bootstrap按钮插件
    Bootstrap弹出框
    Bootstrap提示框
    Bootstrap选项卡
  • 原文地址:https://www.cnblogs.com/jQing/p/2548692.html
Copyright © 2011-2022 走看看