一、簡介
在 android 中選擇 sqlite 的原因是其記憶體占用較低不需要設定或配置資料庫,並且可以在應用程式中直接呼叫。
二、獲取 sqlite 檔案
sqlite 資料庫預設在 android 中儲存在 /data/data/[package name]/databases/ 位置,拓展名為 .db 檔案,注意 android 裝置需要root。
1、進入裝置的 /data/data目錄,查詢對應的測試包.
2、這裡獲取包 com.xueqiu.android 的db檔案為例,進入包檔案 databases 目錄內部可以看到如下 db 檔案。
3、退出adb shell ,將需要的db檔案拷貝出來
三、檢視sqlite 檔案
匯出 db 檔案後可以使用 db browser for sqlite 來檢視資料內容。
1、啟動應用,依次點選選單欄: 檔案->開啟資料庫,選擇開啟拷貝出來的db檔案即可檢視資料庫表結構和內容
2、點選 瀏覽資料 選單可以檢視表具體資料內容,或者點選 執行sql 進行查詢
四、sqlite 資料安全
sql注入
如果通過應用獲取使用者輸入的資料並將其插入 sqlite資料庫,就有可能發生sql注入攻擊的安全問題。
sql注入,就是通過把sql命令插入到表單提交或者輸入網域名稱的查詢字串,最終達到欺騙伺服器執行惡意的 sql 命令
例如,有乙個表單,使用者可以輸入name
$name = $_get['name'];
$dbh->query("select * from users where name=''");
那麼當使用者輸入的name為 python';delete from user; ' 時會變成什麼?
select * from users where name='python';delete from user;'';
這條語句執行執行一下,會把我們的user 表清空。
五、預防sql注入
防止 sql 注入,需要注意以下幾個要點:
1、不要相信使用者的輸入
2、對使用者的輸入進行校驗,可以通過正規表示式,或者限制長度;對單引號和雙引號進行轉換等。
3、不要使用動態拼裝 sql ,可以使用 sql 預處理語句
4、不要使用管理員許可權的資料庫連線,為每個應用使用單獨的許可權有限的資料庫連線。
5、不要把機密資訊直接存放,加密或者 hash 掉密碼和敏感的資訊。
6、應用的異常資訊應該給出盡可能少的提示,最好使用自定義的錯誤資訊對原始錯誤資訊進行包裝。
APP安全測試總結
假設你以上兩個過程都做了加固,但是在安裝apk的時候,本地檔案path被錯誤修改了,仍然可以安裝錯誤的apk,這不僅 會對使用者體驗產生不利,甚至會威脅手機安全。安裝過程也必須對apk檔案進行包名和簽名驗證,防止apk被惡意植入木馬,或替換。public class upgrademodel pub...
APP功能測試和安全測試
效能評估 評估典型使用者應用場景下,系統資源的使用情況。容量測試 即儲存空間已滿時的測試,包括手機使用者可用記憶體和sim卡的所有空間被完成使用的測試。此時再對可編輯的模組進行和儲存空間有關的任何操作測試,如果軟體在極限容量狀態下處理不好,有可能導致宕機或嚴重的花屏等問題出現。相容性測試 也就是不同...
軟體測試之App測試點 基礎安全測試
1.軟體許可權 1 扣費風險 包括傳送簡訊 撥打 連線網路等 2 隱私洩露風險 包括訪問手機資訊 訪問聯絡人資訊等 4 限制 允許使用手機功能接入網際網路 5 限制 允許使用手機傳送接受資訊功能 6 限制 允許應用程式來註冊自動啟動應用程式 7 限制或使用本地連線 8 限制 允許使用手機拍照或錄音 ...