我使用的方法非常类似于实现Api Key方法来识别哪些客户端使用Web服务: http://blogs.msdn.com/b/rjacobs/archive/2010/06/14/how-to-do-api-key-verification-for-rest-services-in-net-4.aspx
我的问题是关于安全......该服务是由第三方公司进行的一些安全测试。他们的一个“低风险”评论(即不需要立即关注的评论)是参数作为httpget传递。该服务纯粹用于检索信息。但是,apikey在查询字符串中...例如URL可能是
https://url.com/companies?company_name=searchforthiscompany&address=paris&apikey=a-long-guid
“含义: 当参数作为HTTP Get请求的一部分传递时,它们更有可能 存储在中间或其他服务器日志文件中。一个好奇的用户可能会看到 敏感信息,如APIKey。
建议: 如果可能,参数应作为HTTP POST正文的一部分传递。“
这应该是我需要担心的事情吗?!很高兴能够将URL重新打入浏览器并获取结果。在这种情况下,您是否会更改所有方法以使用POST?
任何洞察力
答案 0 :(得分:1)
由于您的请求超过了https,因此无需中间人就可以记录完整的uri,只记录域,因为建立了安全隧道并且所有交换都是通过此完成的。
答案 1 :(得分:1)
这一切都取决于您需要您的服务的安全性。如果安全性不是一个相关的问题,那么一定要使用GET。许多公共REST Web服务是使用直接在url中传递的api_key实现的。想到的一个例子是用于检索照片的flickr服务: