我有一个正在开发的网站,其中有几个Web服务(ASMX)将重要数据发布到我的数据库。当我在浏览器中导航到ASMX文件时,我可以用参数填写表单并发布到DB。如果有人找到我的WS的URL,他们可能会严重改变我的数据库。我想阻止人们公开发布我的WS。到目前为止,我已经想到了两件可能会有所帮助的事情,但我想知道是否还有其他方法:
如果我可以使用任何其他最佳做法或技术来保护我的WS,请分享!
答案 0 :(得分:6)
其中一些可能对您有所帮助:
另请注意,测试网页(显示示例tetboxes)只能从本地计算机访问,如果可以从其他计算机查看,则可能存在配置问题。
答案 1 :(得分:1)
如果引荐来源位于同一个域中,那么一种简单的方法是在引用页面中设置cookie,然后检查ASMX中是否存在cookie(以及您要实现的其他任何检查)。请注意,域必须相同,否则此技术将无效。
答案 2 :(得分:1)
最简单的方法是禁用该测试页面。您可以通过将以下内容添加到Web服务的web.config来执行此操作:
<webServices>
<protocols >
<remove name="HttpGet"/>
<remove name="HttpPost"/>
<remove name="HttpPostLocalhost"/>
</protocols>
另外,这里有一个decent article关于保护您的Web服务的其他方法,包括在soap标头中添加身份验证。