Spring 團隊開源 nohttp,儘量不用 HTTP

Spring 團隊開源 nohttp 項目,用以查找、替換和阻止 http:// 的使用。spring

項目是爲了在可能使用 https:// 的狀況下不使用到 http://,確保不會發生中間人攻擊。Spring Security、Session 和 LDAP 項目負責人 ROB WINCH 指出,Spring 團隊不遺餘力更新全部 URL 以使用 HTTPS,包括項目 Maven 存儲庫 URL、Apache License 與文檔連接。可是有些狀況下確實沒法使用 HTTPS,例如,Spring 連接的某些站點不支持 HTTPS、XML 命名空間標識符必須與文檔中的標識符匹配等。安全

Spring Framework 目前已經更新,以解析經過類路徑使用 HTTPS 位置的 XML 位置。以往這僅適用於使用 HTTP 的 URL。網絡

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://www.springframework.org/schema/beans
 https://www.springframework.org/schema/beans/spring-beans.xsd">

上邊 https://www.springframework.org/schema/beans/spring-beans.xsd URL 經過類路徑解析,而不須要網絡鏈接。這裏 XML 命名空間名稱(標識符)沒法更改成使用 HTTPS。從安全控制的角度來看,這其實並不理想,但由於不經過網絡請求,因此對用戶幾乎沒有任何傷害。架構

另外一方面,ROB 表示 Spring 團隊已更新全部主機以確保使用 HTTPS,每一個站點都支持 HTTPS、重定向到 HTTPS,並使用 Strict Transport Security。以往潛在的中間人攻擊意味着構建基礎架構可能已經受到損害,爲此,Spring 從新構建了全部構建基礎架構並輪換了全部憑據。gradle

這些安全措施是很重要的,可是 ROB 表示安全控制措施到位也很重要,這能夠確保問題再也不發生。因而團隊更新了構建箱以阻止 HTTP 流量,同時爲了保護開發人員和用戶,建立了 nohttp 項目。命令行

nohttp 可用於查找、替換和阻止 http:// 的使用,項目庫包含了幾大模塊:code

  • nohttp - 核心,容許查找和替換 http:// URL
  • nohttp-cli - 輕量的 nohttp 封裝,用於命令行運行
  • nohttp-checkstyle - nohttp 與 checkstyle 集成
  • nohttp-gradle - nohttp 與 Gradle 集成
  • samples - 一些 nohttp 用例

寫在最後

相關文章
相關標籤/搜索