【问题标题】:CAS REST authentication API accepts text/* but not application/* content typeCAS REST 身份验证 API 接受 text/* 但不接受 application/* 内容类型
【发布时间】:2017-03-26 07:20:19
【问题描述】:

我已根据these instructions 配置我的CAS 服务器以激活REST 身份验证。但是,为了使其正常工作,我必须按照说明以纯文本(内容类型 text/htmlxml)而不是 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

【问题讨论】:

    标签: rest security cas


    【解决方案1】:

    内容类型对请求中数据的机密性没有影响。如果只考虑机密性,在请求中使用application/x-www-form-urlencoded 发送它并不比text/htmltext/xml 安全。在请求中使用任何这些都没有额外的安全价值,有权访问原始请求源的人(MitM 攻击者)将以任何方式看到请求内容。 HTTPS 有效地降低了节点之间网络上的中间人攻击者的这种风险,但不适用于终止 SSL 的端点(源计算机和目标计算机,以及中间终止 SSL 的任何节点,例如具有受信任根的公司代理客户端上的证书 - 相当常见的设置)。

    至于使用text/plain 而不是application/x-www-form-urlencoded 可能的安全好处,请参阅my answer 到您的其他问题。总之,使用text/plain可以防止一些CSRF攻击。

    【讨论】:

      猜你喜欢
      • 2016-09-06
      • 2017-07-31
      • 2021-05-22
      • 2018-03-25
      • 2012-06-10
      • 2023-01-30
      • 1970-01-01
      • 2018-07-11
      • 2011-12-24
      相关资源
      最近更新 更多