![]() ![]() ![]() ![]() |
|||||
|
|||||
樓主 阿明 ![]()
![]() |
好久沒來發問問題了,最近接了一個專案,前端採用angular後端採用WCF撰寫, 我對angular並不熟悉,就我的理解,它是將整包東西丟給Client,讓Client自己解析或向後端api要東西。 我的問題來了… 例如:我後端有一個用工號取得姓名的方法,比如就叫做 GetUserName(string EmpID) 那angular在向我提出請求時,我會要求他在header裡包帳號及密碼讓我驗証,且這個帳號及密碼會一段時間就失效,但就是一段時間的問題… 如果使用者有機會在這個時間裡串改EmpID取得別人的姓名的機會,那不就很危險嗎? 那我是不是還要在GetUserName裡增加登入者可以查詢那些EmpID才可以有效的防範呢? 但問題來了,我現在已經寫了一百多隻API,不就只要與工號有關係的,都要加入這個登入者的資訊,才可以確保資訊不被偷走呢? 但另一個問題又來了,登入者的資訊,我也不會知道啊,API處於被動的狀態, angular也需要傳登入者的資訊給我,不是嗎? 那我又想到把傳遞的變數全部雜湊,但這好像也不是一個好方法,應該是我對angular不夠瞭解,所以才有很多問號… 我目前前端有與OIDC整合認證登入,但OIDC是客戶的,我等於是借用的,他只會回傳工號給我。 另外我後端的API也需要走SOAP,我也有卡需要帳密才能進入,而前端我目前是有一個機制,需要一個亂數產生的帳密才能進入,這個帳密我會存放於DB裡,每次驗証,但一段時間就會失效。 我就是擔心這個一段時間裡的問題… 請教各位先進是如何防範這個問題呢?我相信應該有方法,但不知關鍵字要找那個方向,是要找angular的安全防範,還是找WCF的安全性呢?
== 簽名檔 ==
字數限制:150字,會顯示在討論文章的最下方 *(修改後30分鐘內會顯示出來) |
1樓 |
通常empid 都是跟password 連在一起,只要password 不會被取得就還好,像我們公司員工目錄,用empid就可查到姓名單位及email,這是公開的,但只有在內網可以,外網就不能進來查。password會要求每三個月強迫更換一次以保安全。
因此若在client端用自己的帳號密碼進入系統,並偷換empid,但因無法取得正確password,還是無法以偷來的empid去做壞事,因此主要是在保障password,重要系統還除了密碼,還會要求插入數位識別證,多一層安全防護。
本篇文章回覆於2019-03-29 01:48
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
2樓
作者回應
阿明 ![]() |
我寫的api要開放外網使用的,所以安全層級要非常高,但是如您所說,你有密碼與工號連在一起雜湊後送到後端,可是如果我沒有密碼欄位呢?
由於我在文裡有提到,前提的認證是走OIDC,所以我也拿不到密碼,系統也沒有什麼地方是給使用者可以自己維護更改的地方,所以我目前沒有更好的方法… 頂多有SSL而已…
本篇文章回覆於2019-03-29 09:02
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
3樓
最有價值解答
浩瀚星空 ![]() ![]() |
基本上,能動的地方還是只有你這邊。畢竟你的問題是對方修改的問題。
所以你並無法有任何防制對方怎麼樣。 你只能針對你這邊做處理。沒密碼欄位就增加密碼欄位吧。 要不然我也想不出什麼好方法就是了。
本篇文章回覆於2019-03-29 15:21
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
回覆 |
如要回應,請先登入. |