Web技術基礎

關於一般帶簽章的JWT(JSON Web Token),下列說明何者正確?

  1. A酬載以簽章金鑰加密,因此即使放入密碼或信用卡號碼傳送,途中也不會被讀取
  2. B即使是已過有效期限的權杖,只要簽章正確就代表沒有遭竄改,伺服器必須接受
  3. C把標頭、酬載、簽章以Base64URL編碼並以「.」串接而成,簽章可偵測竄改,但內容並未加密
查看答案與解析

正確答案:C. 把標頭、酬載、簽章以Base64URL編碼並以「.」串接而成,簽章可偵測竄改,但內容並未加密

JWT由「標頭.酬載.簽章」三個部分組成,標頭放入簽章演算法(例如HS256),酬載放入使用者識別碼、有效期限(exp)等資訊(宣告)。簽章是以秘密金鑰由標頭與酬載產生,因此收到的伺服器可以確認內容沒有遭竄改以及發行者。不過Base64URL並不是加密,任何人都能還原讀取,因此不要放入機密資訊。送往API時,一般放在Authorization: Bearer之後傳送。

  • A. 帶簽章之JWT的酬載只是經過編碼,任何人都能讀取。不要放入機密資訊。
  • B. 伺服器除了簽章,也會確認有效期限(exp),不接受已過期的權杖。
  • C. 正確。簽章可偵測竄改,但內容並未加密。
練習這個領域 前往領域頁面

Web技術基礎的其他題目

  1. 相片沖印服務的應用程式,取得使用者的許可後,讀取使用者存放在另一家公司相片儲存服務中的相片。在OAuth 2.0中,向使用者顯示請求許可的畫面,並在使用者同意後對應用程式發行存取權杖的角色,為下列何者?
  2. 關於OAuth 2.0與OpenID Connect的關係,下列說明何者正確?
  3. 符合REST概念的Web API設計,下列何者適當?
  4. 在瀏覽器中開啟 https://www.example.com:8443/docs/guide.html?lang=ja#install。這個URL中,不包含在送往伺服器的請求裡、只在網頁載入後於瀏覽器內使用的部分,為下列何者?
  5. 為了在URL的查詢中放入日文的「あ」,把這個字元以UTF-8表示的位元組序列(E3 81 82)進行百分比編碼。結果下列何者正確?