urlencode - 编码问题服务堆栈、引号和尖括号被剥离

标签 urlencode servicestack

我有一个服务堆栈应用程序,一个测试服务收到一个简单的请求,但是我发现收到的请求的值与原始请求不匹配。

我发: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"

最佳答案

这也已在即将发布的 servicestack 版本中修复。

看到这个 github issue了解更多信息。

关于urlencode - 编码问题服务堆栈、引号和尖括号被剥离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13602472/

相关文章:

php - urlencode() 不起作用

javascript - JavaScript中的Unicode和URI编码、解码和转义

php - URL 编码似乎妨碍了我的 PHP 程序中正确的 json 编码/解码

python - 为什么 Django 的 `urlencode` 不编码斜杠?

c# - 在 Select() 子句中不使用匿名类型时,构建 SqlExpression 会抛出 InvalidOperationException

c# - 将 url 从 utf-8 编码重新编码为 iso-8859-1 编码

c# - 与存储库模式一起使用时,ServiceStack 操作未显示在元数据中

c# - ServiceStack Redis C# 检索数据缓慢

c# - ServiceStack - FluentValidation

Razor 的 ServiceStack InMemoryVirtualPathProvider - GetViewPage null