日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

api-gateway实践(03)新服务网关 - 网关请求拦截检查

發(fā)布時(shí)間:2023/12/10 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 api-gateway实践(03)新服务网关 - 网关请求拦截检查 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

參考鏈接:http://www.cnblogs.com/jivi/archive/2013/03/10/2952829.html

一、為什么要攔截檢查請(qǐng)求?

防止重放攻擊、篡改重放,進(jìn)行使用規(guī)格檢查

1、請(qǐng)求可能是重放攻擊

重放攻擊的基本原理就是把以前竊聽到的數(shù)據(jù)原封不動(dòng)地重新發(fā)送給接收方。很多時(shí)候,網(wǎng)絡(luò)上傳輸?shù)臄?shù)據(jù)是加密過的,此時(shí)竊聽者無法得到數(shù)據(jù)的準(zhǔn)確意義。但如果他知道這些數(shù)據(jù)的作用,就可以在不知道數(shù)據(jù)內(nèi)容的情況下通過再次發(fā)送這些數(shù)據(jù)達(dá)到愚弄接收端的目的。

例如,有的系統(tǒng)會(huì)將鑒別信息進(jìn)行簡單加密后進(jìn)行傳輸,這時(shí)攻擊者雖然無法竊聽密碼,但他們卻可以首先截取加密后的口令然后將其重放,從而利用這種方式進(jìn)行有效的攻擊。

再比如,假設(shè)網(wǎng)上存款系統(tǒng)中,一條消息表示用戶支取了一筆存款,攻擊者完全可以多次發(fā)送這條消息而偷竊存款。

2、請(qǐng)求可能是篡改重放

網(wǎng)上有一些工具,如:IEC、fiddler,可以攔截IE表單請(qǐng)求,篡改請(qǐng)求報(bào)文數(shù)據(jù)后再提交給服務(wù)器。

  • 實(shí)現(xiàn)攔截請(qǐng)求,篡改數(shù)據(jù)功能的方法有很多,如使用WINPCAP,直接從網(wǎng)卡截包然后篡改,或者HOOK住SEND函數(shù),或者其它相關(guān)的網(wǎng)絡(luò)API。
  • 使用WINPCAP實(shí)現(xiàn)這個(gè)功能,有點(diǎn)牛刀殺雞了,而使用HOOK技術(shù),又不是太安全,基本上帶主動(dòng)防御,智能行為分析的殺軟,HOOK用到的幾個(gè)函數(shù)都是被嚴(yán)密監(jiān)控的。
  • 我們還可以采用--代理攔截技術(shù),看到代理兩個(gè)字,稍稍有點(diǎn)計(jì)算機(jī)知識(shí)的人,第一時(shí)間反應(yīng)的詞語應(yīng)該都是代理服務(wù)器,是的,代理攔截技術(shù),正是基于代理服務(wù)器技術(shù)實(shí)現(xiàn)的。

一般的請(qǐng)求發(fā)送模式:

?

加入代理服務(wù)器后:

使用代理服務(wù)器后,所有的HTTP請(qǐng)求,都是先發(fā)到代理服務(wù)器,然后由代理服務(wù)器重新包裝后,再發(fā)給目標(biāo)(實(shí)際)服務(wù)器,響應(yīng)也是如此,

代理服務(wù)器先接收來自目標(biāo)(實(shí)際)服務(wù)器的響應(yīng),然后包裝后發(fā)給客戶機(jī)。

所以,實(shí)現(xiàn)一個(gè)代理服務(wù)器,就可以攔截請(qǐng)求,篡改數(shù)據(jù)了。?

如何實(shí)現(xiàn)一個(gè)代理服務(wù)器,參見:http://www.cnblogs.com/jivi/archive/2013/03/10/2952829.html

3、需要對(duì)客戶請(qǐng)求進(jìn)行使用規(guī)格限制

? ? ? ?同時(shí)在線請(qǐng)求控制

? ? ? ?時(shí)段訪問總量控制

? ? ? ? 。。。

二、網(wǎng)關(guān)控制

1、請(qǐng)求防攻擊,默認(rèn)關(guān)閉?

? ? ? ?timestamp檢查 & nonce檢查

1.1、timestamp檢查

?

1.2、nonce檢查

?

2、請(qǐng)求防篡改,簽名比對(duì)

為了對(duì)識(shí)別有效的客戶端,我們可以對(duì)請(qǐng)求進(jìn)行防篡改檢查,具體的做法就是客戶端對(duì)請(qǐng)求進(jìn)行簽名發(fā)送,服務(wù)端進(jìn)行簽名比對(duì)。

合法的客戶端是屬于某個(gè)開發(fā)者的,這個(gè)開發(fā)者申請(qǐng)使用某個(gè)api獲得服務(wù)提供者同意后,可以通過注冊(cè)中心綁定一對(duì)前端訪問密鑰,這對(duì)密鑰包括一個(gè)key和一個(gè)secret,開發(fā)者的客戶端使用secret對(duì)要發(fā)送的請(qǐng)求進(jìn)行簽名后,在請(qǐng)求中攜帶key和簽名,發(fā)送請(qǐng)求給網(wǎng)關(guān)。

網(wǎng)關(guān)會(huì)根據(jù)請(qǐng)求中攜帶的key在注冊(cè)中心找到對(duì)應(yīng)的secret,重新對(duì)請(qǐng)求進(jìn)行簽名,和請(qǐng)求中攜帶的簽名進(jìn)行比對(duì),一致則放行,不一致則認(rèn)為這個(gè)請(qǐng)求是被篡改過的。

2.1、客戶端簽名過程

  • 請(qǐng)求頭中要攜帶簽名key:x-ca-front-devclientkeyey=客戶端簽名key
  • 請(qǐng)求頭中要指定參與簽名的請(qǐng)求頭,請(qǐng)區(qū)分大小寫:x-ca-front-sign-headers='x-ca-front-timestamp,x-ca-front-nonce'
  • 請(qǐng)求頭中要攜帶使用簽名key和簽名算法計(jì)算的簽名串:x-ca-front-signature=客戶端簽名
  • 以下是請(qǐng)求簽名Sign類中定義的網(wǎng)關(guān)側(cè)請(qǐng)求頭

    2.2、簽名算法

    ?

    • String secret:簽名密鑰DevClientSecret
    • String uri:服務(wù)端用request.getUri()返回的內(nèi)容, 不帶參數(shù)
    • String httpMethod:POST/GET/DELETE/PUT
    • Map<String, String> headersToSign:要參與簽名的頭key列表,用英文逗號(hào)隔開
    • Map<String, Object> paramsMap:如果是Get,所有參數(shù)列表,如果是post,url后面跟的參數(shù)列表
    • byte[] inputStreamBytes:如果是post-bytes和put-bytes,就是body體的bytes;如果是post-form,字典序的參數(shù)列表串.getBytes()

    2.3、簽名例子

    3、請(qǐng)求使用規(guī)格檢查,默認(rèn)關(guān)閉,如果none認(rèn)證,也關(guān)閉

    3.1、同時(shí)在線請(qǐng)求控制

    3.2、時(shí)段訪問總量控制

    三、補(bǔ)充說明

    創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)

    總結(jié)

    以上是生活随笔為你收集整理的api-gateway实践(03)新服务网关 - 网关请求拦截检查的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。