我正在向公共领域的一些同事展示一个grails应用程序.到目前为止,我正在开发模式,并没有通过战争部署.
我需要确保应用程序安全,以防止他们查看/播放它.我已经有一个用户mgmt,但在sb看到任何我希望有.htpasswd之类的保护之前.如果可能的话,我不想用插件扩展应用程序本身(例如,shiro).
有什么想法/建议?
非常感谢!
我已将此代码放在.htaccess
我要保护的文件夹的文件中:
AuthName "restricted area"
AuthType Basic
AuthUserFile /home/#/#/#/#/#/.htpasswd
require valid-user
Run Code Online (Sandbox Code Playgroud)
在同一个文件夹中,我放置了这个.htpasswd
:
my:pass
Run Code Online (Sandbox Code Playgroud)
当我转到受保护文件夹的URL时,浏览器一直在问我一遍又一遍的密码,即使我正在输入正确的密码.
我知道提到的根目录AuthUserFile
是可以的,因为我发现它:
<?php
$dir = dirname(__FILE__);
echo "<p>Full path to a .htpasswd file in this dir: " .
$dir . "/.htpasswd" . "</p>";
?>
Run Code Online (Sandbox Code Playgroud)
哪里出了问题?
我偶然发现了一个奇怪的问题.可以说我在主域目录中有文件夹:/ myfolder
当我尝试访问此文件夹中的文件索引时,我转到:myurl.com/myfolder它没有任何问题.现在当我把.htaccess密码保护放在这个文件夹中时:
AuthUserFile /home/mywebsite/.htpasssomerandomname
AuthType Basic
AuthName "Authentication Required"
Require valid-user
Run Code Online (Sandbox Code Playgroud)
当我尝试访问myurl.com/myfolder时突然而不是要求我输入密码,我得到了404 wordpress模板页面.下面是我在主WordPress文件夹中的.htaccess.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
Run Code Online (Sandbox Code Playgroud)
什么想法可能是一个问题?
我正在使用通配符dns系统,该系统通过单个Web应用程序路由所有子域,并根据URL的第一部分设置用户ID(X.domain.com,其中X是用户名).
我现在想要编辑我的htaccess文件以使用htpasswd为特定域启用条件httpauth.例如,如果url = password.domain.com,则启用httpauth.
我确信这是可能的,但对htaccess知之甚少.
我想通过.htpasswd保护一个Web文件夹.但是,由于.htaccess文件受版本控制,我宁愿不要乱用它.
相反,我想在
/ etc/apache2/sites-enabled/mysite
/etc/apache2/.htpasswd中进行配置
知道我需要在"mysite"apache配置文件中添加什么内容吗?
到目前为止它是这样的,
<VirtualHost (ip address):80>
ServerName my.domain
DocumentRoot /var/sites/sitename
ServerAdmin ...
</VirtualHost>
Run Code Online (Sandbox Code Playgroud) 使用以下命令.htaccess
,我能够成功限制对具有正确用户名/密码的用户以及来自特定 IP 地址的用户的访问:
AuthType Basic
AuthName "Please enter your password"
AuthUserFile /path/to/.htpasswd
Require valid-user
Order deny,allow
Deny from all
Allow from 123.123.123.123
Satisfy Any
Run Code Online (Sandbox Code Playgroud)
这适用于许多不同的服务器,但是,今天我遇到了一个服务器,它不能100% 工作。用户名/密码正确的用户可以登录,但指定IP的用户则不允许登录,并强制输入密码。
是否有什么因素httpd.conf
可能会阻止 IP 白名单发挥作用?我尝试了多种变体并继续得到相同的结果。所有服务器都是 Linux 上的 Apache。
我想通过.htaccess来保护文件夹.以下不起作用.它在浏览器中显示登录对话框,但看起来好像用户名和密码不匹配.当我将方法更改为Basic时,它工作正常.
AuthUserFile /home/pass/.htpasswd
AuthName "Login"
AuthType Digest
Require valid-user
Run Code Online (Sandbox Code Playgroud) .htaccess password-protection digest-authentication .htpasswd
我想在MVC中将Apache的htpasswd util与我的自定义BasicAuthenticationAttribute一起使用。但是,基于htpasswd文档,我不确定如何计算密码哈希值以与htpasswd文件进行比较。是否有托管的.NET库或一些简单的文档可以帮助我理解这一点?
编辑:海因兹(Heinzi)指出的问题对SHA很好,但我也希望能够处理MD5(APR1?)哈希变量。我已经看到了一些代码示例,但是它们对于我来说太不透明了。同样,对于Apache文档中链接到的实际代码文件。
理想情况下,我希望能够获取任何客户端的.htpasswd文件并将其放入我的ASP.NET站点中以进行身份验证,而不受使用哪种哈希方法的限制。
我正在尝试使用Nginx设置基本的HTTP身份验证,这是多层次的.我想为整个网站提供一个用户名和密码,除了某个子目录(URL),以及该子目录的单独用户名和密码.如果有人导航到该子目录,我希望它们仅被提示输入特定于子目录的凭据,而不是网站根目录的凭据.
我该如何设置?
我知道您可以使用以下架构输入受htpasswd保护的URL的用户名,密码和域:
http://$username:$password@$Domain
例如:
http://sam:1234@example.com
但这对HTTPS域有效吗?如果这样的话,用户名和密码在传输过程中会被加密吗?