1. 程式人生 > >App端與伺服器之間的安全策略

App端與伺服器之間的安全策略

一:https保證通道安全
二:下發token保證無登入的使用者不能隨意呼叫服務
三:token有過期時間,保證服務不被長期木馬攻擊
四:對於支付等安全功能,需要另外增加支付密碼校驗和簡訊驗證
五:應用層內做自己的安全協議(對稱、非對稱、打包證書等等)

移動app通過post請求呼叫伺服器的api介面,為了確保伺服器的資料安全和通訊安全,防止資料篡改等惡意攻擊,本人通過查詢資料和思考,總結出了一個方案,個人認為能解決

基本的介面呼叫安全問題,具體方案如下。

首先,移動端通過訪問公開介面與伺服器通訊,使用使用者名稱和密碼(當然是MD5加密)作為引數向伺服器申請TOKEN,伺服器獲取使用者名稱和密碼,伺服器端判斷該使用者是否法,如果合法,服務端為移動APP應用分配APPID (32位隨機字串)以及TOKEN(32位隨機字串)同時伺服器儲存APPID和TOKEN,當然根據應用的不同,伺服器可以為該TOKEN(建立有效期如3600s)後臺就要建立觸發器或者自動作業銷燬token。移動端收到APPID和TOKEN進行儲存,同時返回給使用者與伺服器建立連線成功等提示資訊。之後,移動端請求其他功能介面,介面引數中要增加APPID和TOKEN,其介面格式如下:method(APPID, Token,…其他引數),伺服器首先驗證token是否有效,進行資料服務完成之後如果token為臨時有效,應重新修改有效期時間起點為呼叫時刻。最後,APP一直沒有訪問服務端,如token永久有效,則沒有後續操作,若token為臨時有效,token過了有效期,驗證無法通過則通知使用者訪問相應介面,重新獲取驗證token。該方案其實是兩步驗證,其實對於一般應用,在使用者註冊的時候,可以同時為使用者生成永久驗證Token,使用者在使用APP進行呼叫服務端API的時候,將該Token配置到系統中,這樣就可以防止惡意使用者直接通過訪問post請求對服務端的資料造成安全隱患。

相關推薦

App伺服器之間安全策略

一:https保證通道安全 二:下發token保證無登入的使用者不能隨意呼叫服務 三:token有過期時間,保證服務不被長期木馬攻擊 四:對於支付等安全功能,需要另外增加支付密碼校驗和簡訊驗證 五:應用層內做自己的安全協議(對稱、非對稱、打包證書等等) 移動app通過post請求呼叫伺服器的api介面,為了

客戶伺服器之間分別通過TCP和UDP進行通訊

一:TCP/IP協議的應用一般採用客戶/伺服器模式,因此在實際應用中,必須有客戶和伺服器兩個程序,並且首先啟動伺服器,其系統呼叫時序圖如下。面向連線的協議(如TCP)的套接字系統呼叫如圖2.1所示: 注意:伺服器必須首先啟動,直到它執行完accept()呼叫,進入等待狀態後

基於TCP協議實現Linux下客戶伺服器之間的通訊,實現多執行緒、多程序伺服器

TCP是TCP/IP協議族中一個比較重要的協議,這是一種可靠、建立連結、面向位元組流的傳輸,工作在傳輸層。和TCP相對的不可靠、無連結、面向資料報的協議UDP,瞭解UDP客戶端與伺服器之間通訊請戳UDP協議實現的伺服器與客戶端通訊 TCP協議建立連線 首

使用sftp在客戶伺服器之間進行檔案傳輸

知識點:sftp 步驟: 一、 登入伺服器 使用命令格式:sftp 伺服器主機名 二、 在客戶端與伺服器之間進行檔案傳輸 命令put: 上傳到伺服器 put haha.txt 命令get: 下載到客戶端

php 客戶伺服器安全破解

一般的加密和授權:轉發伺服器(代理伺服器) 解決方案:hhvm編譯程式碼   放扒取: js類 1:防止滑鼠右鍵事件,在html->body <body oncontextmenu=self.event.returnValue=false> 或

APP(Android版)客戶伺服器時間校準

APP開發人員經常會遇見一個bug就是,APP顯示的時間不準,或者說APP時間與伺服器時間不一致,會導致資料請求、資料顯示等各種問題。這時候我們就需要一種機制來解決時間不一致的問題。 解決方案如下:  1.伺服器端永遠使用UTC時間,包括引數和返回值,不要使用Date格式,而是使用UT

公鑰和私鑰的含義,以及java客戶伺服器之間進行安全加解密的簡單實現

所謂公鑰和私鑰,一般是指在一個伺服器中,每個伺服器各自有自己的公鑰和私鑰,私鑰絕對保密,不可洩露,而公鑰會提供給可以被訪問的伺服器知曉。 如果serverA和serverB進行資料互動 那麼ServerA會知道B的公鑰 在傳送資料時 資料內容使用B的公鑰加密,傳送給B 數字

Android 客戶 okhttp3 伺服器之間的雙向驗證

本篇是Android 客戶端基於okhttp3的網路框架 和後臺伺服器之間的雙向驗證 分為三個階段 一:簡單的後臺伺服器搭建 二:客戶端接入okhttp3,並進行的網路請求 三:伺服器和客戶端的雙向驗證 第一步:   搭建簡單的伺服器 1:下載tomcat 2:配置

如何在HTTP客戶伺服器之間保持狀態

HTTP協議與狀態保持 HTTP協議本身是無狀態的,這與HTTP協議本來的目的是相符的,客戶端只需要簡單的向伺服器請求下載某些檔案,無論是客戶端還是伺服器都沒有必要紀錄彼此過去的行為,每一次請求之間都是獨立的,好比一個顧客和一個自動售貨機或者一個普通的(非會員

手機App客戶伺服器的互動

一般流程 客戶端向服務端傳送請求,服務端處理後返回內容給客戶端,客戶端處理 建立HttpClient物件,並設定響應的引數。 HttpClient httpClient = new HttpClient(); // 設定 HttpClient 接收 Cookie

如何在HTTP客戶伺服器之間保持狀態 ?總結筆記

1、Http協議本身是無狀態的,每一次請求都是獨立的。 2、為了使web變得更加方便,儲存狀態,就出現了cookie與session       cookie機制採用的是在客戶端保持狀態的方案,ses

網路程式設計(InetAddress類、Socket和ServerSocket、實現客戶伺服器之間的雙向通訊)

網路程式設計的底層是IO,通過IO將一臺計算機中的資料傳送到另一臺計算機中。傳送的時候,要知道接受方的地址,該地址即為IP地址。知道IP地址後即可進行傳送。A向B發訊息,訊息是發過去了,但是B要怎樣接受呢?因此定義了埠,B監聽了A所使用的埠。A發的訊息中含有埠號,當B接受到訊息時,知道了埠號

無法伺服器建立安全連結

http://www.cocoachina.com/bbs/read.php?tid=1686383   nscurl --ats-diagnostics --verbose https://baidu.com驗證你的伺服器ATS是否PASS,如果沒有那服務端Nginx上配置TLSV1

Socket模擬客戶伺服器

程式碼如下: #include <stdio.h> #include <WinSock2.h> #include <process.h> #pragma comment(lib, "ws2_32.lib") HANDLE g_hEvent = NUL

五、通過Protobuf整合Netty實現對協議訊息客戶伺服器通訊實戰

目錄 一、Protocol Buffers 是什麼? 二、Protocol Buffers 檔案和訊息詳解 三、專案實戰,直接掌握的protobuf應用。 一、Protocol Buffers 是什麼?         1、官網翻譯

Socket-tcp協議客戶伺服器互聯

客戶端 using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Net.Sockets; using System.Text; using System.T

本地伺服器之間的的相關操作

一、伺服器與本地之間上傳、下載檔案 1. 從伺服器下載檔案 scp [email protected]:/remote_path/filename ~/local_destination 2. 上傳本地檔案到伺服器 scp ~/local_path/local

01-撩課JavaEE-客戶伺服器

一、CS與BS Client/Server:PC客戶端、伺服器架構 Client/Server PC客戶端、伺服器架構 特點: 在伺服器當中就主要是一個數據庫, 把所有的業務邏輯以及介面都交給客戶端完成 優點: 較為安全,使用者介面豐富,使用者體驗好 缺點:

zookeeper叢集的客戶伺服器

zookeeper服務端命令: 啟動命令:sh zkServer.sh start 停止命令:sh zkServer.sh stop zookeeper客戶端命令: 啟動命令:sh zkCli.sh 連線其他客戶端:sh zkCli.sh -server ip:port    

SWUST--Java實驗(七) 客戶伺服器聊天實現

import java.awt.BorderLayout; import java.awt.EventQueue; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.border.EmptyBorde