簡體   English   中英

如何(手動)攔截自定義消息並將其返回給發出HTTPS請求的瀏覽器

[英]How do I (manually) intercept and return a custom message to a browser making a HTTPS request

我正在創建“防火牆”類型的設備(即,坐在通信中間),在某些情況下,該設備需要攔截HTTPS請求並將消息返回給客戶端瀏覽器(例如:抱歉,此操作被阻止)。

我可以通過將iptables DNAT重定向(使用iptables DNAT)到netcat正在偵聽的設備上的另一個端口來進行HTTP操作: 做echo -e“ HTTP / 1.1 200 OK \\ n \\ nsorry這被阻止” | nc -l -p 8000; DONE

(因此nc正在偵聽端口8000並返回正常代碼200答復。當然也可能是其他一些返回代碼,例如403 Forbidden等。)

但是,對於HTTPS怎么辦? 整個內容封裝在SSL / TLS中,如果被攔截,瀏覽器將僅顯示一條消息,說明安全連接失敗。 我嘗試使用HTTP 307臨時重定向(其位置指向http://127.0.0.1)進行響應(然后會給出以上消息)。 但是瀏覽器並不喜歡這樣。

我需要顯示某種定制的消息(不一定是HTML)。 我意識到如果將HTTPS請求更改為HTTP,從而在不通知客戶端的情況下剝離安全性,那將是一個巨大的安全性問題,但是可以在客戶端中不強制彈出消息或執行某些操作嗎? 還是至少有一個標准代碼,例如“ 403 Forbidden”。 我可以(濫用)使用SSL或TLS協議中的某些內容嗎?

謝謝。

因此,您正在開發透明代理。 對於HTTPS流量,每個代理都可以選擇:

  • 通過它而不解密
  • 完全封鎖
  • 進行中間人攻擊以訪問內容

如果您執行中間人攻擊,並且客戶端不信任代理使用的證書,則會收到證書警告。 您無法發送與客戶端有關的任何HTTP,因為SSL / TLS已經無法建立隧道。 沒有隧道意味着您將無法傳輸單個“ HTTP字節”(這也意味着您無法將客戶端重定向到其他地方)。

在SSL / TLS級別上,AFIAK無法發送自定義消息。 “ TLS警報消息”僅允許預定義的常量值

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM