2011-06-09 74 views
2

有沒有方法來加密通過寧靜服務傳遞的數據?寧靜服務上的數據加密

我有一個服務getUser接受用戶ID並提供用戶信息。 根據寧靜的教程,我應該發送這樣的查詢以獲取用戶信息: http://myrestfulserver/getUser/123 其中123是用戶標識。 有沒有一種簡單的方法來使用https加密123而不實現專有安全級別?

回答

1

是的,但要了解發生了什麼,您可能需要用telnet發揮。

基本上,SSL有三個階段,而HTTP(普通)有兩個階段。

  1. 打開服務器的套接字。
  2. 協商加密通道。
  3. 發送加密數據。

所以,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> 
... 
... 

好了,所以你應該從這個不解的是,連接並要求你想要是獨立的東西URL的一部分。回到我們的三個階段的事情:

  1. 連接到yourrestfulserver.com
  2. 建立SSL
  3. 問題GET /的getUser/123 HTTP/1.1

正如你所看到的,3)完成通過加密連接,整個URL對於嗅探操作的任何人都是不可見的,而不僅僅是標識符,所以不需要爲OTA問題加密url選項。

對於客戶端訪問,除非您或您使用的進程故意記錄此信息,否則它也會被加密。