1

在 ServiceStack (3.9.33) 下,我们得到以下异常:

errorCode":"CookieException"
"message":"The 'Name'='$Version' part of the cookie is invalid."
"stackTrace":"   at System.Net.Cookie..ctor(String name, String value)\r\n   at
System.Net.Cookie..ctor(String name, String value, String path, String domain)\r\n   at
ServiceStack.WebHost.Endpoints.Extensions.HttpRequestWrapper.get_Cookies()\r\n   at
ServiceStack.ServiceHost.HttpRequestAuthentication.GetCookieValue(IHttpRequest httpReq, 
String cookieName)\r\n   at 
ServiceStack.ServiceInterface.AuthenticateAttribute.AuthenticateIfDigestAuth(IHttpRequest 
req, IHttpResponse res)\r\n   at 
ServiceStack.ServiceInterface.AuthenticateAttribute.Execute(IHttpRequest req, 
IHttpResponse res, Object requestDto)\r\n   at 
ServiceStack.ServiceInterface.RequestFilterAttribute.RequestFilter(IHttpRequest req, 
IHttpResponse res, Object requestDto)\r\n   at 
ServiceStack.WebHost.Endpoints.EndpointHost.ApplyRequestFilters(IHttpRequest httpReq, 
IHttpResponse httpRes, Object requestDto)\r\n   at 
ServiceStack.WebHost.Endpoints.RestHandler.ProcessRequest(IHttpRequest httpReq, 
IHttpResponse httpRes, String operationName)

当我们的供应商(我们无法控制的代码)提交以下请求时:

Content-Length: 283401
Authorization: Basic --------------------------
Cookie: $Version=0; ss-id=----; $Path=/, $Version=0; ss-pid=---; $Path=/
Host: -----
User-Agent: Jakarta Commons-HttpClient/3.1

我们可以用来避免异常的任何可能的解决方法或设置?

谢谢。

4

1 回答 1

1

我今天的日志中出现了一堆相同的错误(ServiceStack 3.9.67)。

我不会担心试图避免异常或返回正常资源。我不是 PHP 开发人员,但我相信它们是恶意形成的请求 - 攻击者期待 PHP 服务器。他们要么试图探测 PHP 版本和环境工作目录,要么试图将环境变量设置为根目录(我不确定 PHP 所做的 'cookie <-> 变量' 废话魔术的方向)。

编辑:我最终为它编写了一个修复程序:https ://github.com/ServiceStack/ServiceStack/pull/857

于 2013-10-24T07:13:37.110 回答