代码之家  ›  专栏  ›  技术社区  ›  MADCookie

ServiceStack元数据页上的链接是否应该编码?

  •  0
  • MADCookie  · 技术社区  · 7 年前

    我们使用的扫描工具报告了一个安全问题。它监视来自 GET /metadata 在内部 ServiceStack.Metadata.IndexOperationsControl.Render() 并报告了未经验证或编码的响应。具体来说,就是抱怨URL。以下是它关注的片段:

    <h3>Plugin Links:</h3><ul><li><a href="https://mysitedomain/swagger-ui/">Swagger UI</a></li></ul> </div> <p>&nbsp;</p>
    

    我可能概括得太多了。看起来问题在于,最终ServiceStack调用 System.Web.UI.HtmlTextWriter.Write() System.Web.UI.HtmlTextWriter.WriteEncodedText()

                var pluginLinks = metadata != null && metadata.PluginLinks.Count > 0
                ? new ListTemplate
                {
                    Title = metadata.PluginLinksTitle,
                    ListItemsMap = ToAbsoluteUrls(metadata.PluginLinks),
                    ListItemTemplate = @"<li><a href=""{0}"">{1}</a></li>"
                }.ToString()
                : "";
    

    URL应该在这里编码吗?

    1 回复  |  直到 7 年前
        1
  •  1
  •   mythz    7 年前

    没有安全问题,元数据页面上的链接是由编译时静态已知的插件定义的,即它们从不嵌入未知的用户定义的链接。