import org.springframework.stereotype.Controller
import org.springframework.ui.Model
import org.springframework.ui.set
import org.springframework.web.bind.annotation.GetMapping

@Controller
class HtmlController {
@GetMapping("/")
fun blog(model: Model): String {
model["title"] = "Blog"
return "blog"
}
}

現在,轉到src/main/resources/templates文件夾并創建頁眉和頁腳模板文件。我們為模板選擇了mustache模板語法,但您可以按照自己喜歡的語法制作它們。

header.mustache
<html>
<head>
<title>{{title}}</title>
</head>
<body>
footer.mustache
</body>
</html>

最后,創建blog.mustache模板文件并添加以下 HTML:

blog.mustache
{{> header}}

<h1>{{title}}</h1>

<p>This is a test blog.</p>

{{> footer}}

好了,這就是您所需要的。現在,您可以在終端中輸入“gradle bootRun”來運行代碼,然后轉到 localhost:8080 查看您的網站。

Kotlin HTTP 嚴格傳輸安全指南:它是什么以及如何啟用它 圖片

簡單的博客頁面。

瞧!

如果您想更簡潔地了解項目進展情況,請探索 Kotlin 社區和Spring Boot 教程。

什么是 HTTP 嚴格傳輸安全?

現在我們有一個使用 Kotlin 和 Spring Boot 運行的基本網站,讓我們來談談 HTTP 嚴格傳輸安全。

自誕生之日起,加密就一直是防止數據竊聽的靈丹妙藥。因此,保證使用適當的協議加密我們的交易對于任何網絡平臺提供安全性都至關重要。盡管網絡依賴 SSL/TLS 協議來加密和保護客戶端和服務器之間的交易,但確保所有交易都受到保護卻完全不同。 

讓我們用一個基本場景來說明一下。

網站與用戶之間的典型通信流程首先需要向域發出 HTTP 請求。然后,如果相關服務器使用有效證書實施 SSL/TLS 并強制執行 HTTPS 重新路由,則用戶將被重定向 (301) 到具有 HTTPS 請求的同一站點。此流程可確??蛻舳伺c服務器之間的所有通信都通過加密安全完成。

但事實并非如此。

請考慮以下場景。

MITM 攻擊

毫無戒心的用戶試圖訪問我們的網站,試圖通過受感染的網絡(偽裝成合法的假冒接入點)訪問我們的服務器。在這種情況下,初始握手可能會以以下方式使受害者面臨漏洞。 

  1. 攻擊者攔截客戶端和服務器之間的通信,充當“中間人”。
  2. 然后,攻擊者將他們與受害者之間的所有交易重寫為未加密的。
  3. 因此,攻擊者和服務器之間的所有交易都保持加密,從而誤導服務器認為受害者受到了保護。
  4. 同時,攻擊者將受害者發送到我們服務器的所有數據進行交叉。
  5. 利潤。

我們剛剛解釋的這種攻擊稱為 SSL 剝離。它的工作原理是允許攻擊者充當通信中介。然后攻擊者可以指定受害者的安全協議,基本上剝奪客戶端的任何加密安全性。

不太好。那我們能做什么呢?

那么,這次攻擊中最關鍵的一步當然是受害者在開始時進行的初次握手。 

要防止漏洞發生,需要確保瀏覽器僅使用加密方式與我們的服務器通信。而做到這一點的最佳方式就是明確地告訴瀏覽器這樣做。 

這個流程本質上就是 HTTP 嚴格傳輸安全的含義,它是網絡安全的基石。

緩解漏洞

在大多數情況下,瀏覽器及其包含的安全功能為我們承擔了大部分繁重的工作,以確保用戶的安全。要使用 HSTS 實現必要的安全保護,我們需要做的就是將以下標頭添加到服務器響應中:

Strict-Transport-Security: max-age=31536000 ; includeSubDomains

HSTS 標頭包含三個指令(一個必需,兩個可選)。

值得慶幸的是,Spring Security 依賴項默認包含此標頭。但是,如果您想自己動手或對標頭進行一些修改,您可以執行以下操作:

修改<hsts>元素如下:

<http>
<!-- ... -->

<headers>
<hsts
include-subdomains="true"
max-age-seconds="31536000" />
</headers>
</http>

類似地,您可以通過在配置文件中添加以下內容僅使用 HSTS:

@EnableWebSecurity
public class WebSecurityConfig extends
WebSecurityConfigurerAdapter {

@Override
protected void configure(HttpSecurity http) throws Exception {
http
// ...
.headers()
.httpStrictTransportSecurity()
.includeSubdomains(true)
.maxAgeSeconds(31536000);
}
}

此外,我們建議您在所有交易中強制使用 HTTPS。要在 Spring Boot 中實現此目的,請將以下內容添加到配置文件中:

server.port=8443
server.ssl.key.alias=demo-https
server.ssl.key-store-type=pkcs12
server.ssl.key-password=PASSWORD
server.ssl.key-store=classpath:demo-https.pkcs12

之后,確保創建適當的證書并將其包含在資源文件夾中。

最后,確保我們理解 HSTS 標頭很重要,但我們還必須意識到那些尚未準備好遵守該政策的網站會發生什么。

Kotlin HTTP 嚴格傳輸安全指南:它是什么以及如何啟用它 圖片

瀏覽器錯誤。

我們可以看到,一個錯誤導致我們的瀏覽器無法顯示該頁面。該錯誤表明服務器將此網站列為僅使用加密。然而,瀏覽器檢測到了一些可疑的東西。

解碼 HSTS 錯誤

通過閱讀錯誤,我們可以了解問題的可能來源是什么。 

我們知道我們故意讓網站無法通過 HSTS 政策檢查。這意味著我們的下一步應該是確保正確設置加密。此外,如果我們是第一次部署 HSTS,我們必須有一個適當的實施計劃。

根據Scott Helme 的 HSTS 教程中的一些內容,下面是需要遵循的步驟清單。

  1. 查找屬于您網站的所有子域名(查閱您的 DNS CNAME 條目)。這些子域名可能屬于第三方服務。
  2. 檢查根域和所有子域是否可以通過 HTTPS 訪問。
  3. 確認您已配置正確的 HTTP 到 HTTPS 重定向。
  4. 選擇較短的過期時間。例如,您可以設置“max-age=300”(即五分鐘)。
  5. 如果必要的話,附加includeSubDomains指令。
  6. 分階段增加max-age。爭取有效期為兩年。
  7. 一旦一切看起來良好,請添加預加載指令。
  8. 雖然這是可選的,但您可以將域名提交到 Google 的 HSTS 預加載列表。這將確保主流網絡瀏覽器的未來版本會預加載您的域名并將其標記為“僅安全”。

按照這些步驟操作后,您將擁有一個僅強制使用 HTTPS 通信的網站。從那時起,所有用戶都將遵守該政策。

繼續前進

如今,加密是我們抵御攻擊者和惡意攻擊的最重要保護手段。然而,正如我們已經知道的,沒有絕對的解決方案,仍然有可能遭到高度復雜的攻擊。無論如何,實施 SSL/TLS 和 HSTS 政策對于保護幾乎所有網絡都相當有效。

文章來源:Kotlin HTTP Strict Transport Security Guide: What It Is and How to Enable It

熱門推薦
一個賬號試用1000+ API
助力AI無縫鏈接物理世界 · 無需多次注冊
3000+提示詞助力AI大模型
和專業工程師共享工作效率翻倍的秘密
返回頂部
上一篇
Kotlin CSRF保護指南:示例和如何啟用它
下一篇
Angular訪問中斷控制指南:示例及預防
国内精品久久久久影院日本,日本中文字幕视频,99久久精品99999久久,又粗又大又黄又硬又爽毛片
欧美精品自拍偷拍| 亚洲影视在线播放| 91蜜桃网址入口| 99久久精品国产导航| 91网站最新地址| 欧美午夜一区二区| 日韩一区二区不卡| 久久免费国产精品| 成人欧美一区二区三区| 午夜电影网一区| 韩国v欧美v日本v亚洲v| 成人高清免费观看| 在线视频欧美区| 日韩欧美123| 国产精品色哟哟网站| 亚洲综合色在线| 久久av老司机精品网站导航| 丁香婷婷深情五月亚洲| 欧美伦理影视网| 国产日产欧美精品一区二区三区| 亚洲精品网站在线观看| 日本美女一区二区三区视频| 99免费精品视频| 精品少妇一区二区三区视频免付费| 国产精品国产三级国产有无不卡| 奇米精品一区二区三区在线观看一| 国产精品一区二区三区99 | 欧美挠脚心视频网站| 欧美激情综合在线| 午夜精品视频一区| 91日韩精品一区| 久久久三级国产网站| 日韩av不卡在线观看| 91官网在线观看| 国产欧美一区二区三区沐欲 | 欧美一区二区三区白人| 亚洲桃色在线一区| 成人免费看片app下载| 精品女同一区二区| 久久国产尿小便嘘嘘| 欧美男男青年gay1069videost| 亚洲黄色在线视频| 粉嫩一区二区三区性色av| 久久久久久久一区| 精品一区二区三区在线播放| 欧美军同video69gay| 亚洲午夜精品17c| 色综合久久88色综合天天 | 欧洲中文字幕精品| 一区二区三区国产| 欧洲一区二区三区在线| 亚洲精品综合在线| 91福利资源站| 丝袜美腿高跟呻吟高潮一区| 一本到不卡免费一区二区| 亚洲美女偷拍久久| 欧美日韩在线精品一区二区三区激情| 亚洲欧美日韩中文播放| 一本久久精品一区二区| 一区二区三区在线免费视频| 欧美网站一区二区| 日韩黄色免费电影| 精品入口麻豆88视频| 国产成人精品aa毛片| 中文av字幕一区| 欧美伊人久久久久久久久影院| 亚洲成人激情综合网| 日韩欧美一区二区久久婷婷| 国产一区不卡视频| 亚洲欧美偷拍三级| 欧美一区二区三区在线电影| 久久精品国产亚洲一区二区三区| 久久久久久免费毛片精品| youjizz久久| 日韩国产欧美视频| 久久嫩草精品久久久精品| k8久久久一区二区三区| 日韩精品亚洲一区| 久久久久久亚洲综合影院红桃| 99在线视频精品| 免费看欧美美女黄的网站| 日本一区二区视频在线| 精品视频一区三区九区| 成人网页在线观看| 蜜臀久久99精品久久久久宅男| 亚洲日本一区二区| 久久综合五月天婷婷伊人| 色天天综合久久久久综合片| 国产米奇在线777精品观看| 亚洲午夜三级在线| 一区在线观看视频| 亚洲精品一区二区三区香蕉| 欧美综合亚洲图片综合区| 成人免费va视频| 国产毛片精品国产一区二区三区| 午夜精品久久久久影视| 自拍偷拍国产精品| 国产视频不卡一区| 欧美α欧美αv大片| 欧美喷潮久久久xxxxx| 色视频欧美一区二区三区| 成人精品视频一区二区三区 | 最好看的中文字幕久久| 久久免费午夜影院| 91精品黄色片免费大全| 日本精品裸体写真集在线观看 | 久久av资源站| 日韩在线a电影| 亚洲美女免费视频| 综合婷婷亚洲小说| 亚洲特级片在线| 欧美伦理电影网| 久久综合中文字幕| 国产丝袜在线精品| 欧美一区二区网站| 欧美色视频在线观看| 国产91丝袜在线播放九色| 亚洲国产欧美日韩另类综合| 日韩欧美一区二区视频| 欧美日韩成人在线一区| 久久美女艺术照精彩视频福利播放| youjizz国产精品| 国产盗摄一区二区三区| 国产91色综合久久免费分享| 国产成人福利片| 99热这里都是精品| 在线观看av一区| 日韩一区二区免费视频| 精品精品国产高清一毛片一天堂| 精品国免费一区二区三区| 久久精品视频一区二区| 中文字幕五月欧美| 亚洲国产精品欧美一二99| 久久99精品国产.久久久久| 精品一区二区三区影院在线午夜| 国产在线精品一区二区三区不卡| 成人激情小说网站| 色婷婷国产精品| 日韩一区二区在线看| 欧美激情一区在线观看| 亚洲精品乱码久久久久久黑人 | 肉色丝袜一区二区| 国产盗摄精品一区二区三区在线| 成人av电影在线观看| 欧美日本韩国一区| 久久久综合网站| 亚洲国产综合视频在线观看| 精品亚洲porn| 欧美日韩中文一区| 久久婷婷成人综合色| 亚洲精品视频一区二区| 蜜臀av性久久久久蜜臀aⅴ流畅 | 中文字幕 久热精品 视频在线| 亚洲日穴在线视频| 国产乱码精品一品二品| 色94色欧美sute亚洲线路二| 日韩精品一区二区三区中文精品 | 日韩精品成人一区二区三区| 蜜桃久久久久久久| 欧美高清在线视频| 国产在线视频一区二区三区| 亚洲欧洲性图库| 麻豆91在线播放| 国产精品久久久久久户外露出| 精品国产露脸精彩对白| 国产精品久久久久久久久久久免费看 | 国产乱人伦偷精品视频免下载| 精品国产成人系列| 在线电影欧美成精品| 美国十次综合导航| 韩国v欧美v亚洲v日本v| 日韩激情一区二区| 国产精品麻豆一区二区 | 看片网站欧美日韩| 欧美精品一区二区在线播放 | 亚洲欧洲日韩一区二区三区| 一本大道久久a久久精二百| 日韩一本二本av| 亚洲成国产人片在线观看| 麻豆精品一区二区| 欧美老肥妇做.爰bbww视频| 亚洲视频免费在线观看| 秋霞影院一区二区| 成人av免费观看| 日韩精品一区二区三区老鸭窝| 亚洲精品视频在线观看免费| 狠狠色丁香久久婷婷综合_中| www.性欧美| 欧美va亚洲va国产综合| 91麻豆国产自产在线观看| 国产三级精品视频| 亚洲福利一二三区| 久久亚洲春色中文字幕久久久| 国产裸体歌舞团一区二区| 久久亚洲综合色一区二区三区| 午夜精品福利一区二区蜜股av| 欧美无人高清视频在线观看| 亚洲精品成人悠悠色影视| 欧美久久久久中文字幕| 美国十次了思思久久精品导航|