根据these instructions,我已将CAS
服务器配置为激活REST
身份验证。但是,为了使其正常工作,我必须按照说明以纯文本(内容类型text/html
或xml
)而不是application/x-www-form-urlencoded
提交我的凭据。以后一种格式发送时,凭据会丢失。
我以纯文本格式发送登录凭据感到很不舒服。这是CAS中的一个错误,它是如何修复的?我假设将登录凭证作为文本内容类型与应用程序一起发送的安全性较低,因为后者(我假设)会对发送的内容进行散列(或其他方式混淆)。
我还应该提一下,我必须通过在maven overlay
中实施this solution来修复CAS中的错误,因为无论内容类型如何,凭据都会丢失凭据。之后,只有基于文本的内容类型才能工作,CAS会进行身份验证(虽然我觉得服务返回HTML而不是XML / JSON甚至纯文本很烦人,因为它易于编程处理)。
相关: REST API endpoint /v1/tickets appears to lose credential request parameters
答案 0 :(得分:1)
内容类型对请求中的数据机密性没有影响。如果仅考虑机密性,则在application/x-www-form-urlencoded
请求中发送text/html
并不比text/xml
或text/plain
更安全。使用请求中的任何一个都没有额外的安全价值,有权访问原始请求源的人(MitM攻击者)将以任一方式查看请求内容。 HTTPS可以有效地降低节点间网络上的MitM攻击者的风险,但不会终止SSL终止的端点(源计算机和目标计算机,以及终止SSL的任何节点,例如具有受信任根的公司代理)客户证书 - 一种相当常见的设置。)
至于使用application/x-www-form-urlencoded
代替text/plain
的可能的安全好处,请参阅my answer您的其他问题。简而言之,使用A
|
|
|
|
B --- C
可能会阻止一些CSRF攻击。