我有一个服务堆栈应用程序,一个测试服务收到一个简单的请求,但我发现收到的请求值与原始请求不匹配。
我发送:http://localhost/testapp/test?value=%22test%20data%22%20%3C12345%3E
但代码输出:测试数据“12345>
请注意缺少的第一个双引号和缺少的左尖括号。
任何想法为什么应用程序会删除第一个 " 和 "<"?它是某种 XSS 保护的一部分吗?
我的代码:
public class TestService : RestServiceBase<RequestDto>, IRestService<RequestDto>
{
public override object OnGet(RequestDto request)
{
return request.Value;
}
}
public class RequestDto
{
public string Value { get; set; }
}
首先允许服务堆栈接收带有“<”的请求。我不得不切换应用程序 web.config 来使用:requestValidationMode="2.0"