2016-09-23 111 views
0

我目前正在为银行开发Rest API。在Rest API中,原则URI是唯一标识。这意味着我们必须通过在请求URL 例如资源ID:在URI中传递资源ID的最佳安全做法

  • GET /客户/
  • PUT /客户/
  • DELETE /客户/

但问题是,在我的由于安全原因,银行通过传入ID的URI。 (URI可以读取任何一个)

有人能告诉我有没有任何行业级的最佳实践来克服这个安全问题,而不违反休息资源命名原则?

+0

你确定你被禁止将URI放入URI吗?我知道他们不希望你传递任何敏感数据,如会话ID或信用卡号码,这确实是最好的做法,由于几个原因(请求URL登录到客户端,代理,也可以在监视器上看到某个时候等等)但是一般来说任何资源ID?这不会有很大的意义。 –

+0

哇,哪家银行? –

回答

1

但是由于安全原因,问题在于我的银行在URI中禁止传入id。 (URI可以读取任何一个)

也就是说,如果你没有使用TLS/SSL,这反正是在银行等安全关键环境中不行的!如果有人能够读取您的请求,他能够读取您的HTTP流量,因此没有真正的方法来保护通过此线路发送的任何可靠信息,无论是在URL中,还是在标题或内容中!

如果您无法在URI中添加任何内容,您将难以开发干净简洁的restfull HTTP API!

+0

我们使用TLS/SSL。如果是这样,你可以保证在URL中传递ID的时候没有安全问题? – Dinusha

+1

如果做得对;当然! TLS加密HTTP端点之间的所有通信,请参阅TLS:https://de.wikipedia.org/wiki/Transport_Layer_Security – enzian

+0

但URL可以是现金或保存在浏览器历史记录中。 – Dinusha

相关问题