我开发了WCF(RestService),现在我担心它的安全性。
在fiddler的帮助下,我得到了所有请求,特定服务的响应参数。 例如,
URL of service : ../RemoteService/WebService.svc/Login Headers : application/json Body : { "apiSecretKey":"sda564456asdasda45sdsad452635", "userName":"abc@test.com", "password":"test@123" }
Api密钥是主要关注点,因为整个开发的服务在此运行,如果任何人获得此密钥,那么该人可以访问数据并使用该服务。
我如何更加保护我的请求数据?
请建议。
答案 0 :(得分:2)
您没有描述您的架构,但这是一个常见问题。如果您在网上搜索“使用来自网络应用程序的令牌进行安全api调用”之类的内容,您会发现不应该直接从您的网页调用API,因为您确实需要将令牌发送给用户,然后可以将令牌用于恶意目的。
您需要“代理”来自您网站的API调用,您可以在其中使用登录会话或单独的令牌来验证和授权用户。所以:
[Web browser] <-- session key or token --> [Web server] <-- token --> [API server]
相关阅读:Programmers.SE: Securing ajax calls to rest api,REST API Token-based Authentication,REST authentication and exposing the API key
答案 1 :(得分:1)
如果用户自己提供该数据,那么使用https保护WCF URI是可行的方法。 Fiddler只能在您的计算机上阅读https,并且只能获得您的许可。 https将保护数据免受现实世界中的窥视(好吧,尽可能多。)
此外,如果这是由有限的一组用户(企业对企业,而不是企业对消费者)调用的服务,则可以通过防火墙限制对单个IP地址的访问。