【问题标题】:Risks of AJAX calls to asmxAJAX 调用 asmx 的风险
【发布时间】:2015-06-22 15:19:51
【问题描述】:

目前正在处理对 ASP Web 服务 (.asmx) 的 ajax 调用。

在我发布到 url/.asmx/WebMethod 的情况下,我是否会暴露任何类型的信息?

在“WebMethod”中,我正在运行一个调用 API 并传递 json 字符串的 PostJsonAsync。

在我仍在学习的过程中,有人告诉我调用任何公共 [WebMethod] 都会公开代码,但我不确定这怎么可能。

用户是否可以访问我拥有的 WebMethod 服务器端代码并​​查看可用的 API 调用?

我尝试了一些次要的安全方法。我们正在使用 Sitefinity CMS。我所做的是调用一个接收 CurrentUserIdentity 并返回 GUID 的 WebMethod。如果当前用户已登录,则返回一个有效的 Guid,否则返回一个全零的 Guid。

然后,我调用包含我的 API 调用的 WebMethod 并发布一个 json 对象以及有效或无效的 GUID。然后,服务器端 WebMethod 代码将验证 GUID 是否有效,并根据是否可以生成 UserProfile 继续。

对我来说,这似乎是安全的,但有人告诉我,这仍然会暴露 WebMethod 以及 API。但是,我只是不了解暴露的内容和可以使用的内容。

如果有人可以将我引导到任何对此有更多信息的资源,或者如果有人可以就 WebService 安全性向我提供建议,我将不胜感激。

提前致谢。

【问题讨论】:

    标签: asp.net ajax web-services post sitefinity


    【解决方案1】:

    如果您通过 AJAX 调用这些方法,那么它们会向公众公开......并且可以被任何可以调用您的服务器的东西调用。话虽如此,除非您正在做一些容易被滥用的事情,否则没有任何问题。

    在您的特定情况下,听起来代码正在接受假定来自第一个 API 调用的 GUID。如果确实如此,您可能需要重新考虑该机制的工作原理。为需要限制的每种方法添加身份验证检查可能是更好的解决方案。

    【讨论】:

    • 是的,我一直在尝试制定一些涉及合法身份验证检查的解决方案。感谢您的回复
    猜你喜欢
    • 2012-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-19
    • 2013-08-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多