Spring Security配置內容安全策略

      網友投稿 1501 2022-05-30

      Spring Security配置內容安全策略

      1、什么是內容安全策略?

      內容安全策略:Content Security Policy,簡稱CSP,內容安全策略是一種安全機制,開發著可以通過HTTP 響應標頭,可顯著減少現代瀏覽器中的 XSS、Clickjacking 等代碼注入攻擊。CSP通過W3C WebApplication Security Working Group發布標準

      標準語法:

      Content-Security-Policy: ; ; ; ...

      例子:

      Content-Security-Policy:script-src 'self' 'unsafe-inline' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self' data:;connect-src 'self' http://www.baidu.com http://127.0.0.1:8080 data:;font-src 'self';object-src 'self';

      2、CSP有哪些選項?

      CSP1.0主要提供了這些選項的配置:

      default-src:為其余指令設置默認源列表。如果其它指令沒設置,就用default-src的默認配置

      script-src:為JavaScript一些腳本配置安全策略

      object-src:這里一般指Flash或者一些Java插件等等

      style-src:css樣式

      img-src:圖片

      media-src:媒體文件(音頻和視頻)

      frame-src:嵌入的外部資源(比如、等等)

      font-src:字體文件

      connect-src:HTTP 連接(通過 XHR、WebSockets、EventSource等)

      CSP2.0:新增的一些主要選項

      base-uri:控制是否允許文檔操作頁面的基本 URI。

      child-src:替換frame-src.

      form-action:控制文檔提交 HTML 表單的能力。

      frame-ancestors:像 X-Frame-Options 標題一樣工作,通過控制如何將此文檔嵌入到其他文檔中。

      plugin-types:控制頁面可以加載哪些特定插件,例如 Flash、Java、Silverlight 等。

      所有指令都遵循相同的模式:

      self用于引用當前域

      可以在空格分隔的列表中指定一個或多個 URL,一般是一些域名或者ip加端口

      none表示不應為給定指令加載任何內容,例如object-src 'none’表示不應加載任何插件(如 Flash 或 Java)。

      例子:

      Content-Security-Policy:script-src ‘self’ ‘unsafe-inline’ ‘unsafe-eval’;style-src ‘self’ ‘unsafe-inline’;img-src ‘self’ data:;connect-src ‘self’ http://www.baidu.com http://127.0.0.1:8080 data:;font-src ‘self’;object-src ‘self’;

      3、設置CSP方法

      前端頁面設置,前端頁面通過設置meta 標簽

      后端設置,設置response的header

      public void setResponseHeader(HttpServletRequest request,HttpServletResponse response) { //內容安全策略 response.setHeader("Content-Security-Policy", "script-src 'self' 'unsafe-inline' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self' data:;connect-src 'self' http://www.baidu.com http://127.0.0.1:8080 data:;font-src 'self';object-src 'self';"); }

      4、Spring Security設置CSP

      有了前面的基礎知識后,我們可以新建一個Spring Security項目來實踐:

      開發環境

      JDK 1.8

      SpringBoot2.2.1

      Maven 3.2+

      開發工具

      IntelliJ IDEA

      smartGit

      Navicat15

      在IDEA里集成阿里的https://start.aliyun.com,創建一個Spring Initializr項目:

      選擇jdk版本,和maven打包方式

      項目主要的maven配置:

      org.springframework.boot spring-boot-starter-security org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-thymeleaf

      spring-boot-starter-security:springboot集成的spring security starter

      spring-boot-starter-web:web相關的starter

      spring-boot-starter-thymeleaf:使用thymeleaf在前面頁面渲染

      加一個簡單的登錄頁面:

      Signin Template for Bootstrap

      上一篇:一文回顧 Java 入門知識(下)
      下一篇:創建一個Eclipse視圖
      相關文章
      国产亚洲欧美日韩亚洲中文色| 亚洲精品无码AV中文字幕电影网站| 国产成人亚洲综合在线| 亚洲精品在线免费观看| 久久香蕉国产线看观看亚洲片| 亚洲一区二区三区免费| 噜噜噜亚洲色成人网站| 国产AV无码专区亚洲AV蜜芽| 亚洲欧美日韩中文高清www777| 亚洲国产午夜精品理论片| 亚洲欧洲国产精品久久| 自拍偷自拍亚洲精品情侣| 国产亚洲色视频在线| 亚洲一区日韩高清中文字幕亚洲| 亚洲äv永久无码精品天堂久久 | 亚洲人成77777在线播放网站不卡| 亚洲网站免费观看| 久久丫精品国产亚洲av| 久久久久亚洲av无码专区| 亚洲首页在线观看| 亚洲国产人成在线观看| 亚洲免费视频观看| 亚洲乱码无限2021芒果| tom影院亚洲国产一区二区| xxx毛茸茸的亚洲| 亚洲乱码在线卡一卡二卡新区| 亚洲性无码AV中文字幕| 亚洲精品无码久久久久YW| 亚洲av综合av一区二区三区 | 亚洲男人的天堂在线| 亚洲欧洲校园自拍都市| 亚洲伊人色一综合网| 亚洲 暴爽 AV人人爽日日碰| 亚洲狠狠婷婷综合久久蜜芽| 久久亚洲精品高潮综合色a片| 亚洲 无码 在线 专区| 国产精品亚洲高清一区二区| 亚洲精品乱码久久久久久蜜桃不卡| 亚洲AV日韩AV永久无码久久 | 午夜亚洲WWW湿好爽| 不卡一卡二卡三亚洲|