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