接口安全測試


一、后台接口分類
1、接口類別:restful(json) soap(xml)
2、協議 :http https(ssl)
 
3、restful接口請求類型
get操作是安全的
post的操作是不安全的 同put
delete也是不安全的
 
4、現狀和問題
大部分APP的接口都采用restful架構,restful最重要的一個設計原則就是客戶端與服務端的交互在請求之間是無狀態的。大部分都采用token的認證方式。
token分別在兩台手機上登陸微信
 
二、接口安全設計原則
1、接口類型盡量使用https帶SSL證書模式
2、接口參數使用簽名(非對稱加密算法)
3、接口參數需要校驗
注冊:注冊機
4、每次請求需要用戶命令
5、多次失敗后需要有鎖定機制
6、接口對應用戶權限,用戶只能調用有權限的接口
用戶的權限
接口權限:系統有多個模塊,每個模塊有多個接口,我只購買了2個模塊的服務,只分配兩個模塊的接口來使用---license
7、系統接口做過負荷機制用來保護系統安全
過負載----保護系統,再好的系統也有瓶頸,超過請求后提示系統忙
(1)提交請求后立即提示系統忙
(2)提交請求后一段時間后提示系統忙
靜態:
動態:
 
三、接口安全設計注意事項:
1、對用戶任何輸入的都需要注意
2、不能只在客戶端進行校驗
3、服務端返回的任何服務錯誤信息不要返回給用戶
 
四、常用接口安全測試類
1、sql注入
(1)sql拼接:jdbc/obdc ----鏈接數據庫
select * from userInfo where userId=1 ---查詢id為1的用戶
sql = sql + condition
(2)使用第三方組件,比如java里面的hibernate,ibatis,jpa
通過各種sql查詢業務信息,甚至破壞系統表
 
(3)sql注入注意事項:
1.永遠不要信任用戶的輸入。對用戶的輸入進行校驗,可以通過正則表達式,或限制長度;對單引號和雙"-"進行轉換等。
2.永遠不要使用動態拼裝sql,可以使用參數化的sql或者直接使用存儲過程進行數據查詢存取。
3.永遠不要使用管理員權限的數據庫連接,為每個應用使用單獨的權限有限的數據庫連接。
4.不要把機密信息直接存放,加密或者hash掉密碼和敏感的信息。
5.應用的異常信息應該給出盡可能少的提示,最好使用自定義的錯誤信息對原始錯誤信息進行包裝
 
2、xss攻擊
(1)描述:利用XSS的攻擊者進行攻擊時會向頁面插入惡意Script代碼,當用戶瀏覽該頁面時,嵌入在頁面里的Script代碼會被執行,從而達到攻擊用戶的目的。同樣會造成用戶的認證信息被獲取,仿冒用戶登錄,造成用戶信息泄露等危害
(2)安全風險:文字中可以輸入js腳本,例如<script src=‘wrong URL’></script>這種有安全性的腳本,其它用戶進入后可以獲取該用戶的cookie信息,即可以對該用戶資源進行操作
 
3、越權訪問
(1)描述:在一個產品中,一個正常的用戶A通常只能夠編輯自己的信息,別人的信息無法查看或者只能查看的權限,但是由於程序不校驗用戶的身份,A用戶更改自己的id值就進入了B用戶的主頁,可以查看、修改B用戶的信息,這種漏洞我們就將其稱之為越權漏洞
(2)舉例:用戶登錄app成功,系統記錄用戶id,例如userid為1。
安全風險:此時用戶通過工具發送消息將userid設置為2后可能登陸成功,及用戶可以通過修改userid來訪問其它用戶資源,引發嚴重問題。
 
4、csrf 請求偽造
(1)描述:CSRF是一種對網站的惡意利用,過偽裝來自受信任用戶的請求來利用受信任的網站。
(2)舉例:在APP上打開某個網站時,突然彈出您已經中獎的提示和鏈接
安全風險:點開鏈接后會跳轉到對應異常界面,並且用戶本地信息可能已經被獲取,如果在跳出界面進行相關操作,比如銀行相關操作會引起更大的安全問題和嚴重損失。
(3)安全防護
1. 使用post,不使用get修改信息
2. 驗證碼,所有表單的提交建議需要驗證碼
3. 在表單中預先植入一些加密信息,驗證請求是此表單發送


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM