WEB前后端分离开发中的验证与安全问题
生活随笔
收集整理的這篇文章主要介紹了
WEB前后端分离开发中的验证与安全问题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
登錄驗證以及安全問題:?
1、請求接口全部用post方式,在后端判斷請求方式是否為post
2、登錄密碼等敏感信息要加密后傳輸,如用RSA(支付寶里可下載公私鑰生成工具),客戶端公鑰加密,傳到服務器后再用私鑰解密:
//js公鑰加密 function encrypt(data) {//需要引入插件jsencrypt.js 下載地址http://download.csdn.net/detail/codercwm/9770398var RSA_PUBLIC_KEY = '';//私鑰寫在這里var obj = new JSEncrypt();obj.setPublicKey(RSA_PUBLIC_KEY);var data = obj.encrypt(data);return data; }//php解密函數 function decrypt($data) {$data = base64_decode($data);//讀取私鑰$key_private = file_get_contents('./rsa_private_key.pem', 'r');//進行解密if(!openssl_private_decrypt($data, $data, openssl_pkey_get_private($key_private))) {return false;}return $data; }
3、登錄驗證問題
(1)前后端代碼放在同一個服務器,依舊可以使用session保存登錄信息;
(2)在登錄過程中,如果密碼是明文提交,傳輸過程中可能會被攔截,即使加密后傳輸,也可用攔截到的已加密密碼直接請求服務器進行登錄,而且因為加密的代碼是在客戶端js中的,黑客可以修改客戶端js,用攔截到的已加密的密碼繞開此加密代碼請求服務器進行登錄,這是非常危險的,所以我想出了如下方案:
4、關于攔截和偽造cookie進行登錄的預防:
(1)用戶登錄后,由于是用cookie記錄sessid,如過請求過程中cookie被攔截,黑客就可以利用此cookie中的sessid在另一臺電腦上進行登錄,直至用戶退出登錄服務器session被銷毀,這樣是非常危險的,所以我想出了如下方案:
5、結合4、5兩種方案,我的做法如下:
用戶請求登錄頁面的時候,服務器生成一個token保存在服務器session中和客戶端cookie中,登錄時客戶端帶上此token一起提交到服務器,驗證此token是否有效,若有效即登錄成功并更新此token,重新賦值到session和cookie中; 登錄后的用戶在每一次請求時都判斷cookie中的token和session中的token是否一樣,若一樣即登錄有效,并且要更新token,下次請求再進行判斷,若不一樣即登錄無效。
轉載于:https://www.cnblogs.com/super-ldc/p/10855298.html
總結
以上是生活随笔為你收集整理的WEB前后端分离开发中的验证与安全问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: react hook——你可能不是“我”
- 下一篇: Android开发神器:OkHttp框架