目前正在处理对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安全性向我提出建议,我将不胜感激。
提前致谢。
答案 0 :(得分:1)
如果您通过AJAX调用这些方法,那么它们会暴露给公众...并且可以被任何可以调用您服务器的东西调用。话虽如此,除非你做一些容易被滥用的事情,否则它没有任何问题。
在您的特定情况下,听起来代码接受假定来自第一个API调用的GUID。如果情况确实如此,您可能需要重新考虑该机制的工作原理。为每个需要限制的方法添加身份验证检查可能是更好的解决方案。