基本认证
tomcat中的实现 BasicAuthenticator.java
web.xml
<security-constraint>
<web-resource-collection>
<web-resource-name>RegisterUsers</web-resource-name>
<url-pattern>/b.jsp</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>user</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>BASIC</auth-method>
<realm-name>Registered Users</realm-name>
</login-config>
<security-role>
<role-name>user</role-name>
</security-role>
缺点是明码传输,而且base64编码的字符串很容易解码+会引起重放攻击
这一点在tomcat代码中没有避免,没有作控制。
摘要认证
摘要访问认证是一种协议规定的Web服务器用来同网页浏览器进行认证信息协商的方法。它在密码发出前,先对其应用哈希函数,这相对于HTTP基本认证发送明文而言,更安全。
tomcat中的实现DigestAuthenticator.java
web.xml
<security-constraint>
<web-resource-collection>
<web-resource-name>RegisterUsers</web-resource-name>
<url-pattern>/b.jsp</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>user</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>DIGEST</auth-method>
<realm-name>Registered Users</realm-name>
</login-config>
<security-role>
<role-name>user</role-name>
</security-role>
缺点是一旦截取到请求很容易就能发起重放攻击,而且也不需要验证了。
tomcat代码的编写者考虑到了这种攻击的可能性,去除了该攻击的可能性
if (principal != null && !digestInfo.isNonceStale()) {
java基础-http认证
最新推荐文章于 2023-08-11 16:22:15 发布