AJAX的风险调用asmx

时间:2015-06-22 15:19:52

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

目前正在处理对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安全性向我提出建议,我将不胜感激。

提前致谢。

1 个答案:

答案 0 :(得分:1)

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

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