RESTful服务URL和安全性

RESTful服务URL和安全性,rest,service,Rest,Service,我建议包括过滤信息和通过RESTful服务访问资源的常用URL方法 客户端担心URL将包含他们不希望web服务器或其他基础结构应用程序记录的信息 还有什么替代方案呢?如果你不在乎宗教上的宁静,你可以使用POST或PUT over SSL提交所有内容。在Web服务器日志中不记录Post参数(如GET url) 如果只是不希望记录的身份验证详细信息(如客户端id和客户端机密),则可以使用授权标头。您可以将web服务器配置为不记录这些信息。这就是Nginx的情况: 在http级别: log_forma

我建议包括过滤信息和通过RESTful服务访问资源的常用URL方法

客户端担心URL将包含他们不希望web服务器或其他基础结构应用程序记录的信息


还有什么替代方案呢?

如果你不在乎宗教上的宁静,你可以使用POST或PUT over SSL提交所有内容。在Web服务器日志中不记录Post参数(如GET url)


如果只是不希望记录的身份验证详细信息(如客户端id和客户端机密),则可以使用授权标头。

您可以将web服务器配置为不记录这些信息。这就是Nginx的情况:

http
级别:

log_format scrubbed '"$http_x_forwarded_for - $remote_user [$time_local]  '
    '"$scrubbed_request" $status $body_bytes_sent '
    '"$http_referer" "$http_user_agent"';
access_log /var/log/access.log scrubbed;
set $scrubbed_request $request;

if ($scrubbed_request ~ (.*)sensitive=[^&]*(.*)) {
   set $scrubbed_request $1sensitive=****$2;
}
服务器
级别:

log_format scrubbed '"$http_x_forwarded_for - $remote_user [$time_local]  '
    '"$scrubbed_request" $status $body_bytes_sent '
    '"$http_referer" "$http_user_agent"';
access_log /var/log/access.log scrubbed;
set $scrubbed_request $request;

if ($scrubbed_request ~ (.*)sensitive=[^&]*(.*)) {
   set $scrubbed_request $1sensitive=****$2;
}
位置
级别:

log_format scrubbed '"$http_x_forwarded_for - $remote_user [$time_local]  '
    '"$scrubbed_request" $status $body_bytes_sent '
    '"$http_referer" "$http_user_agent"';
access_log /var/log/access.log scrubbed;
set $scrubbed_request $request;

if ($scrubbed_request ~ (.*)sensitive=[^&]*(.*)) {
   set $scrubbed_request $1sensitive=****$2;
}

代码取自,请访问该链接了解更多信息

你的建议是什么?“通常的URL方法”没有意义。您可以使用https RESTfull服务和by POST方法来保护它。我们给出了相同的答案time@prashantthakre看来我的回答比你的评论快了几秒钟。在RESTful服务中,包括post和put在内的所有动词通常在URL中具有相同的路径和参数来标识资源。那么我应该如何在请求中包含这些信息呢?头球?并且一个URL将用于所有请求?@user3915768没有理由您不能在帖子正文中指定它们,或者在标题中使用HTTP basic auth对它们进行编码——这也不会记录在日志中。@user3915768如果只是身份验证凭据,您可以使用get和headers。如果是其他参数,则需要将它们粘贴到POST正文中。我不会创建自定义标题。