【发布时间】:2016-03-14 20:54:04
【问题描述】:
我正在评估一个 REST API,我想知道是否包括:
Access-Control-Allow-Methods:GET,POST,PUT,DELETE,OPTIONS
当Request Method 仅用于PUT 时,Response Headers 是正确的。
我也有兴趣了解这是否会带来安全风险或只是一种错误做法。
【问题讨论】:
我正在评估一个 REST API,我想知道是否包括:
Access-Control-Allow-Methods:GET,POST,PUT,DELETE,OPTIONS
当Request Method 仅用于PUT 时,Response Headers 是正确的。
我也有兴趣了解这是否会带来安全风险或只是一种错误做法。
【问题讨论】:
从技术上讲,仅PUT 可能还不够。对于飞行前请求,您可能还需要 OPTIONS。
一般来说 REST 使用PUT 来修改现有内容。但是我们需要先创建内容,然后才能进行修改。所以POST也许也应该被允许?由你决定。
出于安全考虑,在我看来,它更多的是代码而不是允许的标头。
【讨论】:
DELETE 的用例,我们无论如何都会把它放在某个地方。在参数、自定义标头或方法中。如果人们能弄清楚,这取决于我们的代码如何处理这些可疑请求。