gpt4 book ai didi

apache - 如何防止在 Tomcat 7.0.52 中使用散列密码登录?

转载 作者:行者123 更新时间:2023-11-28 22:48:40 25 4
gpt4 key购买 nike

我正在使用 Tomcat 7.0.52 服务器并在 tomcat-users.xml 中使用散列密码。

我的服务器接受同时使用纯文本密码和散列密码的登录。

如何防止/阻止用户使用散列密码登录并强制他们使用明文密码?

以下文件的片段

网络.xml:

<login-config>
<auth-method>DIGEST</auth-method>
<realm-name>testvalue</realm-name>
</login-config>

服务器.xml

<Realm className="org.apache.catalina.realm.MemoryRealm" digest="SHA"/>

tomcat-用户.xml

<user username="testuser" password="xxxx--------------yyyy" roles="testrole"/>

最佳答案

我知道这并不是您所问问题的严格答案,但我建议至少将 tomcat 升级到最新版本 8.0(发布时为 8.0.48)。我从 7 升级到 8 已经有一段时间了,但如果没记错的话,那是非常轻松的。 This link应该包含您需要了解的有关向上迁移的所有信息。您真正需要注意的唯一一件事是它需要 Java 7 或更高版本,即使这也不是什么大问题,除非您有一个特别特殊的设置。

Tomcat 8.0.x 说明如下

这就是我的设置方式,我无法通过将散列密码粘贴到密码字段来登录。我选择了 sha-512 并任意选择了 512 作为我的盐长度。您不必但为什么不呢?

Tomcat 8 - 服务器.xml

<Realm className="org.apache.catalina.realm.LockOutRealm">
<!-- Tomcat comment stuff trimmed out here -->
<Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase">
<CredentialHandler className="org.apache.catalina.realm.MessageDigestCredentialHandler" algorithm="sha-512" saltLength="512" />
</Realm>
</Realm>

Tomcat 8 - tomcat-users.xml:

<role rolename="yourrolehere"/>
<user username="yourusername" password="yourhashedpasswordhere" roles="yourrolehere"/>

我确定您已经知道如何使用 digest.bat(或者 digest.sh,如果您喜欢的话)但是对于其他人来说,打开命令提示符并导航到您的 tomcat 安装并进入 bin 目录。然后输入以下内容:

digest -a sha-512 -s 512 youRcl3artextpa$sword

这将产生一个非常长的密码散列,其格式为:

youRcl3artextpa$sword:hashedpasswordforalongtime

复制分号后的所有内容,并确保没有换行符。 (需要的话用记事本清理一下)这是您的新哈希密码。

Tomcat 8 Digested Passwords Documentation

关于apache - 如何防止在 Tomcat 7.0.52 中使用散列密码登录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47731474/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com