Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么在REST请求中验证内容类型头_Rest_Security - Fatal编程技术网

为什么在REST请求中验证内容类型头

为什么在REST请求中验证内容类型头,rest,security,Rest,Security,建议验证内容类型标题。但是它没有为相同的问题指定rational。即使我没有阅读或使用内容类型标题,我也应该验证它的原因是什么 在发布或放置新数据时,客户机将指定 应用程序的内容类型(例如application/xml或application/json) 传入数据。服务器不应采用内容类型;信息技术 应始终检查内容类型标题和内容是否正确 同样的类型。缺少内容类型标头或出现意外错误 内容类型标头应导致服务器拒绝该内容 以406不可接受的响应 想到的一个例子是在跨站点ajax请求中,很容易发送一个不会

建议验证内容类型标题。但是它没有为相同的问题指定rational。即使我没有阅读或使用内容类型标题,我也应该验证它的原因是什么

在发布或放置新数据时,客户机将指定 应用程序的内容类型(例如application/xml或application/json) 传入数据。服务器不应采用内容类型;信息技术 应始终检查内容类型标题和内容是否正确 同样的类型。缺少内容类型标头或出现意外错误 内容类型标头应导致服务器拒绝该内容 以406不可接受的响应


想到的一个例子是在跨站点ajax请求中,很容易发送一个不会生成飞行前请求的
text/html
请求,但使用
applictaion/json
是不可能的。因此,如果您有一个具有POST操作的服务,它需要json并更改服务器状态,那么如果内容类型接受了
text/html
,则可能利用CSRF,但如果验证了
application/json
,则有一些基本的保护,因为如果对飞行前的响应不明确允许CORS post,浏览器将不会从其他域发送请求

因此,跨域ajax请求的某些属性取决于内容类型。我认为这可能是主要原因


另外,从更理论的角度来看,解析数据需要数据的格式。我想不出有什么真正的漏洞,但至少在理论上,试图以错误的格式解析数据可能会导致错误的结果,解析的内容与预期的不同。最好只验证客户端是否确实发送了它所声明的内容,以及应该发送的内容。

accept标头如何?或者这算不算是一个单独的问题。