有没有办法加密通过restful服务传递的数据?
我有一个服务getUser,它接受用户ID并提供用户信息。 根据restful教程,我应该发送这样的查询以获取用户信息: http://myrestfulserver/getUser/123 其中123是用户ID。 有没有一种简单的方法可以使用https加密123而不实现专有的安全级别?
答案 0 :(得分:1)
是的,但要了解发生了什么,您可能需要使用telnet。
基本上,SSL中有三个阶段,而在HTTP(普通)中有两个阶段。
所以,1)实际上是一个连接。 2)在HTTP中不会发生,但在HTTPS中发生,那么3)在两种情况下都是HTTP。 HTTP看起来像什么?使用telnet:
$ telnet google.com 80
Trying 209.85.227.103...
Connected to google.com.
Escape character is '^]'.
GET / HTTP/1.1 # <---- I typed this
HTTP/1.1 302 Found
Location: http://www.google.co.uk/
Cache-Control: private
Content-Type: text/html; charset=UTF-8
Set-Cookie: PREF=ID=71ab4b30677eaa81:FF=0:TM=1307626411:LM=1....
Date: Thu, 09 Jun 2011 13:33:31 GMT
Server: gws
Content-Length: 221
X-XSS-Protection: 1; mode=block
<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>302 Moved</TITLE></HEAD><BODY>
<H1>302 Moved</H1>
The document has moved
<A HREF="http://www.google.co.uk/">here</A>.
</BODY></HTML>
...
...
好的,所以你应该从中理解的是,连接和请求你想要的网址部分是分开的。回到我们的三阶段事情:
正如您所看到的,3)是通过加密连接完成的,因此任何嗅探操作的人都不会看到整个URL,而不仅仅是标识符,因此无需为OTA问题加密url选项。
对于客户端访问,除非您或您使用的进程故意记录此信息,否则它也会被加密。