新浪云PHP应用实现HTTP基础认证

运行在新浪云的PHP应用完成HTTP basic认证可以从代码层面和非代码层面实现,以下分开描述。

代码层面

PHP官方文档就有说明,http://php.net/manual/en/features.http-auth.php

非代码层面

PHP标准环境
通过config.yaml文件实现

PHP标准环境可以通过config.yaml文件实现http basic 认证,可以从config.yaml中添加

- passwdaccess: passwd "test:test"

实现所有页面访问都需要输入用户名和密码都为test的效果。

也可以实现对目录或者指定格式的文件的保护,可以参考新浪云文档 http://www.sinacloud.com/doc/sae/php/runtime.html#http-ji-chu-ren-zheng

通过.htaccess文件实现

PHP标准运行环境暂时不支持通过.htaccess文件完成http basic 认证。

云空间环境

云空间运行环境请先使用代码层面实现,暂时不支持从Apache的规则实现。

云虚拟主机

云虚拟主机可以通过.htaccess文件实现basic认证。

.htaccess文件如下:

Options -Indexes  
<FilesMatch "(abc)$">  
     Deny from all
</Filesmatch>  
AuthType Basic  
AuthName "RestrictedFiles"  
AuthBasicProvider file  
AuthUserFile /abc  
Require valid-user  

其中

<FilesMatch "(abc)$">  
     Deny from all
</Filesmatch>  

实现对密码文件abc的保护,从 http://tool.oschina.net/htpasswd 可以在线生成用户名密码对,其中加密的算法请选择Crypt (all Unix servers)

密码文件放在代码的根目录下,文件名叫abc,用户名密码均为admin,文件格式如下:

admin:k6VPsWmhxCSIE  

这时候直接访问输入用户密码即可,直接访问/abc 文件会出现403错误。