我有关于json Web服务安全性的问题。 我试图使用json webservice开发一个示例Web应用程序,但问题是url暴露在客户端。因此,任何人都可以创建一个程序并调用该服务一千次。 请注意,Web服务将用于注册页面,其中检查用户是否存在于数据库中。因此,此过程中未发生任何身份验证。
确保调用公开的Web服务的方法是什么?
答案 0 :(得分:2)
这就是我要做的事情:
在Web服务和外部世界之间放置一个身份验证层(即,不要将您的Web服务设置为公共接口,而是将身份验证层设置为公共API)。
获取身份验证层,然后代表呼叫者调用Web服务。
这样,您就可以在身份验证层实现业务逻辑 - 例如简单地拒绝尝试DOS攻击的呼叫者,或者调用不可信的IP地址等等。
此外,您的API是内部的,因此没有人可以调用它(您可以在Web服务中实现更多逻辑,以确保它只处理来自localhost的请求。
这是我将使用的配置。一般来说,向公众公开API并不是一个好主意,除非您希望人们调用它并可能不时地滥用它。
答案 1 :(得分:0)
没有100%防守。无论如何,有人可以制作一个程序并使用您的服务。你可以让程序员更加努力。
你可以做的主要是在返回结果之前做一个延迟并限制一个ip的连接数。此外,您可以在注册页面上添加会话ID(在5-10分钟后到期),在您的服务请求中必须存在。
答案 2 :(得分:0)
您可以按来电IP过滤请求。如果一个IP呼叫你的API,比如一分钟100次,它就会被滥用,你就会阻止以下连接。请记住不时取消阻止IP以尊重动态IP。