請給你的簡訊驗證碼介面加上SSL雙向驗證

2022-01-10 23:39:16 字數 1735 閱讀 4847

簡訊接收方無法約束

由於是註冊型介面,接收方往往都是平台內不存在的手機號,所以無法約束。

介面請求方無法約束

由於是http(s)介面,任何人都可以請求,只要簡單分析你的介面。

呼叫頻次無法約束

一般的,介面開發者可能會想到通過抓取介面請求者的ip,進行頻次約束,但實現是,他們拿到只是請求者的公網ip,有可能乙個體量很大的區域網使用者,介面開發者抓取到的都是他們的同乙個公網ip,所以通過ip約束在很多場景下是不能使用的。

原因其實很簡單,介面開發者無法知道哪些請求是合理的,有些請求是不合理或惡意的,因為所有請求者都沒有身份資訊。

單向驗證

我們平時瀏覽器請求的https網頁,其實是ssl/tls單向的客戶端驗證服務端的證書,也就是服務端不要求客戶端有公認的證書,但客戶端是要求服務端必須提供受信任的數字證書頒發機構證書。中間傳輸的資料是加密安全的,但服務端是無法得到能代表客戶端的身份資訊的,而且,客戶端的請求加密資料是可以間接被攔截、解析、重構資料報再傳送到服務端的(你可以了解fiddler是怎麼做到分析https介面的)。

雙向驗證

雙向驗證是指在單向驗證的基礎上,服務端也需要驗證客戶端的證書,只有客戶端持有服務端認定的指定證書,服務端才允許客戶端通過ssl握手,否則直接關閉tcp連線。對於需要雙向驗證的https介面,fiddler也是無能為力,因為它自己也連線到不到服務端。

客戶端證書

客戶端證書我們不需要花錢去購買,使用openssl tools來自頒發就可以,服務端一般驗證其thumdata是否滿足就可以了。

回到實際幹活擼**階段,我們可以把簡訊介面獨立出來,做單獨乙個服務,其提供的只有簡訊功能的介面,介面必須雙向證書驗證,使用 kestrel ,我們很容易加入驗證客戶端的**邏輯。

}}

openssl生成cer、key和pfx

openssl genrsa -out openssl.key 1024

openssl req -new -x509 -key openssl.key -out openssl.cer -days 3650 -subj /cn=localhost

openssl pkcs12 -export -out openssl.pfx -inkey openssl.key -in openssl.cer

如果你在postman請求,設定cer和key檔案到postman即可,如果在.net環境請求這些介面,你需要使用pfx,你可以簡單理解pfx就是前兩者使用乙個可選的密碼進行打包的得到單一檔案。關於證書本身的內容非常龐大,本文不作任何解讀。

.net的客戶端怎麼設定證書

這裡先賣個關子,使用webapiclient庫,可以輕鬆完成你想要的。

發簡訊介面獲取驗證碼

介面合作公司 從這裡獲取id 簡訊介面使用者名稱 uid uid tclkj02234 簡訊介面密碼 passwd passwd 731765 傳送到的目標手機號碼 telphone telphone 1863525 簡訊內容 message message 這是一條測試資訊111111 xx fi...

驗證碼簡訊介面如何使用

安裝驗證碼簡訊介面其實很簡單,就是用你運用的程式語言傳送乙個帶引數的http請求就可以了。然後在http請求位址裡,將簡訊帳號密碼和要測試的手機號及簡訊中的變數新增上去就可以傳送了,簡訊帳號 userpass 密碼 mobiles 測試的手機號 content 簡訊中的變數 codeid 3396 ...

簡訊驗證碼後端 介面設計

介面檢視 實現 傳送簡訊驗證碼可以使用容聯雲通訊實現 生成簡訊驗證碼 class smscodeview view def get self,request,mobile 注意 image code id就是uuid image code request.get.get image code uui...