2014-10-27 19 views
0

如果我有使用doGet()如一個Java servlet:Java servlet:通過doTet()發送的參數是否使用HTTPS進行編碼?

public class MyServlet extends HttpServlet { 
protected void doGet(HttpServletRequest request, HttpServletResponse response) 
... 
param1 = request.getParameter("param1"); 
... 

,它被調用https://www.mydomain.com/MyServlet?param1=hello訪問。

param1安全,因爲我使用https(即,param1對除訪問該鏈接的用戶以外的任何人都不可見)?或者,它是否可見,因爲doGet()將param1放置在HTML標頭中?如果後者,什麼是等效doPost()看起來像這裏?

+0

可能重複[是HTTPS頭加密嗎?](http://stackoverflow.com/questions/187655/are-https-headers-encrypted) – ControlAltDel 2014-10-27 18:51:18

+0

它取決於如果鏈接起源於https網站或不是 – developerwjk 2014-10-27 18:53:18

回答

2

如果鏈接源自https網站,那麼它很好。

如果鏈接不是源自https站點,則不是。就像如果你真的把這個鏈接放在另一個網站或者使用http的同一個網站上。因此,如果您有http://www.example.com/並且它與https://www.example.com/MyServlet?param1=hello鏈接,那麼它實際上並不安全,因爲您通過純文本打印出鏈接。

+0

謝謝@developerwjk,如果我在電子郵件中發送鏈接「https:// www ...'而用戶點擊了該鏈接? – user46688 2014-10-27 18:57:53

+0

@ user46688,電子郵件可能是以明文形式發送的,這意味着任何可以攔截電子郵件的人都可以看到該參數是什麼。 – developerwjk 2014-10-27 18:59:41

+0

太好了,謝謝! – user46688 2014-10-27 19:00:32

相關問題