這是我第一篇部落格,從1.16起我將會每天更新一篇部落格,部落格裡會記載著我日常生活中遇到的一些技術難點以及我學習過程中接觸的新知識,希望每天能有所進步吧。
做好資料安全的乙個好辦法就是加密,作為後端工程師,我們與前端工程師進行商量好,使用同一種資料加密演算法,並且使用同乙個加密的鹽,這樣當前端進行訪問時,對資料進行加密,後端工程師收到引數後對資料進行解密後判斷資料是否合法,合法的話則通過該請求。返回資料時也是一樣,後端對資料加完密後,前端再根據相應的演算法進行解密,確保資料不被非法人員攔截。
我們在請求過程中在header頭中傳入了sign值,每次請求都對sign進行判斷。我通常會在header頭裡面傳入手機的唯一識別號,以及13位時間戳(microtime可以實現),進行組合確保唯一性,再進行加密生成sign。後端接收到請求後先獲取header頭,對sign進行解密,解密後看看該陣列中的手機唯一識別號是不是header中的識別號,是的話說明該sign通過。
當然,上面的做法還有可能被黑客進行攔截獲取到請求引數,下次請求的時候用同樣的引數也可以進行訪問。所以,我們還得給sign做乙個時效性,如果當前時間大於傳入進來的時間(例如10s)就對sign校驗失敗,這樣可以有效地降低了風險。但是還是有漏洞的,黑客可能已經在這10s內讀取到了資料,資料已經洩露了。這裡有條件的話可以用redis,判斷sign是否有重複,如果之前有請求傳入進該sign的話則校驗失敗。
這過程中有中情況是當客戶端時間跟伺服器時間相差太多的時候,會導致sign的有效期校驗失敗。此時可以讓客戶端先請求伺服器,判斷相差的時間,把相差的時間寫入header頭中,這樣驗證sign的時候加上或者減去zheg
關於資料的校驗
在一般的程式設計中,通常是將資料的校驗分成兩個部分實現,乙個是資料格式的校驗,另外就是資料邏輯的校驗,或者是資料業務邏輯校驗 目前我能想到的校驗,只有這兩個部分 資料格式的校驗,是在表示層處理,如果是struts用validate.xml校驗就可以。做邏輯校驗的地方很多都不一樣,我看有在action...
關於資料校驗
1.什麼是資料校驗 通俗的說,就是為保證資料的完整性,用一種指定的演算法對原始資料計算出的乙個校驗值。接收方用同樣的演算法計算一次校驗值,如果和隨資料提供的校驗值一樣,就說明資料是完整的。2.最簡單的檢驗 實現方法 最簡單的校驗就是把原始資料和待比較資料直接進行比較,看是否完全一樣這種方法是最安全最...
App 資料安全測試
一 簡介 在 android 中選擇 sqlite 的原因是其記憶體占用較低不需要設定或配置資料庫,並且可以在應用程式中直接呼叫。二 獲取 sqlite 檔案 sqlite 資料庫預設在 android 中儲存在 data data package name databases 位置,拓展名為 db...