我已经配置了我的CAS
服务器来激活REST
身份验证,按照下面的说明。然而,为了使其工作,我必须以纯文本(内容类型text/html
或xml
)提交我的凭据,而不是按照说明提交application/x-www-form-urlencoded
。当以后一种格式发送时,凭证将丢失。
我不喜欢以明文形式发送我的登录凭据。这是CAS中的一个bug吗?如何修复?我假设将登录凭据作为文本内容类型发送比应用程序更不安全,因为后者(我假设)会散列(或以其他方式混淆)发送的内容。
我还应该提到,我必须通过在我的maven overlay
中实现此解决方案来修复CAS中的一个错误,由于该错误,无论内容类型如何,凭证都会丢失。在那之后,只有基于文本的内容类型可以工作,CAS可以进行身份验证(尽管我发现服务返回HTML而不是XML/JSON甚至纯文本是很烦人的,以便于编程处理)。
相关: REST API endpoint/v1/tickets似乎丢失了凭据请求参数
Content-type对请求中数据的机密性没有影响。如果只考虑保密性,在请求中使用application/x-www-form-urlencoded
发送它并不比text/html
或text/xml
更安全(或更不安全)。在请求中使用任何一种都没有额外的安全价值,具有原始请求源访问权限的人(MitM攻击者)将以任何一种方式看到请求内容。对于节点间网络上的MitM攻击者来说,HTTPS有效地降低了这种风险,但对于终止SSL的端点(源和目标计算机,以及终止SSL的任何节点,例如在客户端上具有受信任根证书的公司代理——一种相当常见的设置)来说,HTTPS无法降低这种风险。
关于使用text/plain
代替application/x-www-form-urlencoded
可能带来的安全好处,请看我对你的另一个问题的回答。总之,使用text/plain
可以防止一些CSRF攻击。