2016-11-12 40 views
0

我有REST服务进行登录认证,其预计,我送凭据text/html,如果我给他们的application/x-www-form-urlencoded内容类型不起作用工作。发送的登录凭据为text/html内容类型

是不是不太安全送他们为文/ *(我假设它是)? 应用程序/ *如何使它更安全?

相关:CAS REST authentication API accepts text/* but not application/* content type

+0

敏感细节必须在HTTP标头中发送,而不是在HTTP主体中发送。就内容类型而言,它更多的是为服务完成的设计和实现。 – ScanQR

回答

1

这可能是CSRF保护的(弱)的形式。来自Javascript的跨域调用application/x-www-form-urlencoded将使服务器保持原样,因此攻击者可能通过发送AJAX请求将用户登录到攻击者的域中。但是,如果仅接受text/html,则如果跨域请求,则此类请求会首先触发预检OPTIONS请求;如果服务器未明确允许CORS标头,则浏览器不会发送实际数据。

因此,请求凭证text/html的API比application/x-www-form-urlencoded稍微安全一些。除此之外,它对安全性没有太大影响。但是请注意,尽管内容类型在服务器响应中确实具有重要的安全性效果,但JSON数据并不一定是html编码,因为JSON只是一种数据格式,客户端Javascript应用程序可以并应该决定如何渲染或编码下载的数据然而,如果数据不是以JSON编码的话,任何JSON数据“页面”,如果以text/html作为text/html发送,由此产生的JSON字符串本身就容易受到XSS的影响,因为浏览器会将其渲染为因此,JSON响应应始终为application/json,在这种情况下,浏览器将不会将其作为Javascript运行。)