2015-06-22 83 views
0

說網站A有一段javascript,它可以對站點B上的端點執行ajax調用。站點A使用從站點B生成的JWT來驗證請求。在AJAX調用中保證JWT令牌的安全

僅僅通過檢查(例如Chrome)請求和它的標頭,用戶是否能夠獲得JWT?然後他可以使用該智威湯遜並提出自己的要求。

如果是這樣,那麼在瀏覽器中進行ajax調用時應該如何使用JWT,而不是在JavaScript文件中使用純文本?

e.g

$.ajax({ 
 
    type:"GET", 
 
    beforeSend: function (request) 
 
    { 
 
    request.setRequestHeader("Authorization", "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJodHRwczovL2p3dC1pZHAuZXhhbXBsZS5jb20iLCJzdWIiOiJtYWlsdG86bWlrZUBleGFtcGxlLmNvbSIsIm5iZiI6MTQzNDk0NDIwMywiZXhwIjoxNDM0OTQ3ODAzLCJpYXQiOjE0MzQ5NDQyMDMsImp0aSI6ImlkMTIzNDU2IiwidHlwIjoiaHR0cHM6Ly9leGFtcGxlLmNvbS9yZWdpc3RlciJ9.UPFXFOgvmXUenz4mtJkzSEiBc_k6hdytTbxIrDDET2o"); 
 
    }, 
 
    url: "https://siteb.com/api/articles/", 
 
    success: function(data) { 
 
    // do something with data 
 
    } 
 
});

回答

0

是,用戶可以在自己的瀏覽器訪問JWT令牌 - 這無異與餅乾。

對於那些用戶B的授權您的應用程序訪問的B 代表他的情況下,沒有必要保護JWT令牌由用戶自己 - 只是從第三方。

如果您想象服務B以某種方式授權您的應用程序A訪問它的場景,那麼JWT令牌永遠不應該去瀏覽器,而是停留在A的服務器端。然後,您的AJAX調用應該發送到A B使用適當的JWT。