【问题标题】:Ubuntu 16.04 Apache2 only requires password once?Ubuntu 16.04 Apache2 只需要密码一次?
【发布时间】:2018-09-28 20:09:02
【问题描述】:

我有一个服务器正在运行,并设置了一个 htaccess 文件。一切正常,它确实需要密码才能访问我设置的文件夹,但是一旦使用密码,它就再也不需要验证了。似乎不安全,所以我想知道如何要求重新输入密码。就像某种访问超时,但我不知道要寻找什么,而且我发现的只是人们一直试图停止需要密码。

请提供解决方案,或指出我需要寻找的正确方向。

我在 apache 配置文件中使用 ssl 和带有基本身份验证设置的 .httaccess 文件。

<Directory "/var/www/html">
  AuthType Basic
  AuthName "Restricted Content"
  AuthUserFile /etc/apache2/.htpasswd
  Require valid-user
</Directory> 

【问题讨论】:

  • 这是因为您的缓存会在用户登录时记住他们。它会要求他们再次登录,但仅在加载新的浏览器会话时。真的,你应该有一个正确的用户登录。 .htaccess 一点也不安全,您应该避免将其用于安全措施。我不确定您有什么设置,但我会使用 PHP 来执行此操作,将其连接到数据库并正确加密所有密码。做起来比较简单,网上有数百个教程:)
  • 感谢@Lag,我最终确实朝着这个方向发展并构建了一个完整的 php 登录系统。效果更好的广告让我可以完全控制用户。我只是没想到会这么容易。我关注了这个视频link,然后根据我的需要进行了调整。
  • 扎克太棒了!这确实是一种更有效、更安全的登录方式。 .htaccess 很棒,但它确实是一个很大的安全漏洞,所以不应该用于这样的事情。我很高兴你把这一切都整理好了:)

标签: .htaccess apache2 ubuntu-16.04


【解决方案1】:

据我所知,apache/HTTP 身份验证无法让您控制。 首次验证后,您的服务器无法指示浏览器注销或超时。 HTTP 身份验证不适用于会话/cookie,浏览器应不断发送身份验证凭据。 要注销,您应该关闭浏览器。

查看 Apache 网页:AuthDigestNonceLifetime 指令可能很有用,时间值以秒为单位。我这里用300。

<Directory "/var/www/html">
    AuthType Digest
    AuthName "Restricted-Content"
    AuthDigestDomain "http://127.0.1.2"
    AuthDigestProvider file
    AuthUserFile /etc/apache2/.htpasswd         
    AuthDigestNonceLifetime 30          
    Require valid-user
</Directory> 

您还必须使用htdigest 命令来生成.htpasswd 文件

htdigest -c /etc/apache2/.htpasswd Restricted-Content username

然后设置密码 然后将AuthDigestDomain 设置为您的 URL 或 IP

此配置只能与基于 degest 的身份验证一起使用。尽管用户必须手动清除浏览器缓存。

但我建议您切换到不同的身份验证方法,除非它是应用程序的唯一选项

【讨论】:

  • 我添加了,但是在尝试重新启动时导致错误。我猜 usingAuthDigest 和 SSL 之间存在冲突,或者还有更多设置 AuthDigest 的问题?
  • 嘿@kishea,我先尝试了这个,但它一直在我的配置文件中抛出错误。也许我正在运行的版本不再完全支持它,或者需要添加更多以便它知道发生了什么?最后,我构建了一个基于 php 的登录系统,以消除基本的身份验证限制。不过还是谢谢你的回答!
猜你喜欢
  • 1970-01-01
  • 2018-07-30
  • 1970-01-01
  • 1970-01-01
  • 2011-03-01
  • 2017-07-14
  • 2017-05-11
  • 1970-01-01
相关资源
最近更新 更多