發表文章

目前顯示的是 6月, 2021的文章

jQuery使用錯誤_Uncaught SyntaxError: Invalid shorthand property initializer

圖片
  Uncaught SyntaxError: Invalid shorthand property initializer 檢查一下在用jQuery一些功能時候是不是 把: 寫成 = 即可

經得起原始碼資安弱點掃描的程式設計習慣培養(五)_Missing HSTS Header

圖片
  接續前幾篇系列 經得起原始碼資安弱點掃描的程式設計習慣培養(一)_OWASP Top 10(十大網站安全風險)_學習寫更安全程式碼的網站推薦 經得起原始碼資安弱點掃描的程式設計習慣培養(二)_8.Insecure Deserialization :不安全的反序列化漏洞ASP.NET處理方式 經得起原始碼資安弱點掃描的程式設計習慣培養(三)_7.Cross Site Scripting(XSS)_Stored XSS_Reflected XSS All Clients 經得起原始碼資安弱點掃描的程式設計習慣培養(四)_1.Injection注入攻擊_SQL Injection)_order by 語句正確參數化套入 最近又遇到被若安掃描到高風險要修正的程式碼啦.... 一看這還真是搞不懂該怎麼修呢 HSTS(HTTP Strict Transport Security)  主要是一份國際標準規格 (RFC 6797) 的網際網路瀏覽安全機制, 用於宣告瀏覽器與伺服器之間通訊方式必須強制採用 TLS/SSL 加密通道。 只要從伺服器端送出一個 Strict-Transport-Security 標頭 (Header) 給瀏覽器,即可告知瀏覽器於未來的某段時間內一律使用 SSL 來和該網站連接 (設定可涵蓋所有子域名網站), 一旦發生憑證失效情況,使用者將無法再瀏覽該網站,如此一來便可大幅減少中間人攻擊的問題發生。 再更白話一點 HSTS Header 就是負責將 http 強制轉為 https CheckMarx掃碼報告給的說明 ============================================================ 風險: 如果web config沒有設置HSTS表頭、"max-age"(有效期)不足一年, 或沒有設定"includeSubDomains"(包含所有子網域),可能會使用戶容易遭受中間人攻擊。 發生原因: 許多使用者只要在瀏覽器的網址列輸入網域名稱(Domain Name)即可瀏覽網站, 並沒有輸入協定(Protocol)的名稱。 瀏覽器會自動假設使用者使用的是HTTP協定而不是有加密機制的HTTPS協定。 在第一次發出前往特定網站的請求時,攻擊者可以執行中間人攻擊並將用戶轉址到

SpringBoot第02天_使用Thymeleaf模板引擎回傳一個前後端整併模式的畫面_啟用靜態資源

圖片
啟用靜態資源 比方像是圖片、文件等等 這些主要會固定放置於static目錄下 可以自行去命名多一層目錄來分門別類 那也可以放一個html 這邊假設多創建一個test.html直接放於static目錄下 當運行時記得確認你上方挑選到的是 對應專案Application名稱 這邊要對應主程式類別運行喔 由此可見static這個目錄就相當於網站站台根目錄 針對靜態資源訪問情況 也可編寫img tag 連結靜態資源 而相對路徑也就一樣概念喔 如果要透過MVC框架來去做相應訪問 首先需要在pom.xml中添加spring-boot-starter-thymeleaf 或是一開始專案創建時候你就有挑選好 等專案產生成功後POM.xml中即可看到有自動添加此相依套件 pom.xml 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 <?xml version= "1.0" encoding= "UTF-8" ?> <project xmlns= "http://maven.apache.org/POM/4.0.0" xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation= "http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" > <modelVersion> 4.0 . 0 </modelVersion> <parent> <groupId>org. springframework . boot </groupId> <artifactId>spring-boot-starter-parent</a

SpringBoot第01天_環境配置並使用IntelliJ IDEA新增專案新建Controller寫一隻方法回傳

圖片
  Spring框架: Spring是一個open source的設計層框架,於2003 年興起的 一個輕量級的Java 開發框架,由Rod Johnson創建。 簡單來說,Spring是一個分層的JavaSE/EE full-stack(一站式) 輕量級開源框架。 他解決的是業務邏輯層和其他各層的鬆耦合問題,因此它將面向介面的編程思想貫穿整個系統應用。 包含一些很好的功能,如依賴注入和開箱即用的模塊, 如:Spring JDBC 、Spring MVC 、Spring Security、 Spring AOP 、Spring ORM 、Spring Test 這些模塊,這些模塊縮短應用程序的開發時間,提高了應用開發的效率 例如,在Java Web開發的早期階段,我們需要編寫大量的代碼來將記錄插入到數據源中。但是通過使用Spring JDBC模塊的JDBCTemplate,我們可以將這操作簡化為只需配置幾行代碼。 Spring Boot: 基本上是Spring框架的延伸, 既spring的快速開發腳手架(CLI),通過約定大於配置的方式,消除了設置Spring應用程序所需的XML配置,優化了混亂的依賴管理,和復雜的配置,讓我們用java -jar方式,運行啟動java web項目。 自2019年以後Oracle開始要收取java授權費 針對企業收取,那可能會涉及要有填入公司行號才能做下載。 https://www.oracle.com/tw/java/technologies/javase/jdk11-archive-downloads.html 因此比較少人會去安裝Oracle JDK 改為安裝Open JDK https://adoptopenjdk.net/releases.html 記得選Type:Maven會出現pom.xml用於相依套件配置 新增java class 命名XXXController.java (在此若發現突然找不到new java class選項) 請針對src目錄右鍵設置Source Root (也可能是因為Maven還在載入專案相依配置需要等) 之後就可以new java class了 TestController.java程式 1 2 3 4 5 6 7 8 9 10 11 12 package com. exa

T-SQL筆記20_肥大的ldf檔案_查詢便超慢_壓縮SQL Server ldf

圖片
  當SQL Server在查詢時遇到很慢的情況 但在異端server又執行的飛快正常時候 可能就要去檢查是不是 交易紀錄檔 過大導致 情境是backup到本機在做測試時發覺慢到不像話 query 一個查詢竟然要耗費6分鐘 這驚人的耗時讓我懷疑人生 在這篇論壇貼文討論中也有滿多高手提到的 https://www.sqlteam.com/forums/topic.asp?TOPIC_ID=139592 而通常product線上的主機都會定時做備份跟purge 才不會愈來愈大 在SQL Server中每一個資料庫都有兩種形式的資料檔 資料檔MDF 跟 記錄檔LDF 所有資料庫的交易紀錄都會優先寫入至LDF 然後才從LDF傳至MDF 這就是底層資料庫交易紀錄的觀念 在SQL Server中管理LDF方式 主要跟資料庫復原模式設定有關 簡單復原模式(Simple Recovery model) 每次的checkpoint動作發生時,SQL Server會截斷已完成或回複的交易紀錄, 換言之,SQL Server可以重複使用交易紀錄的儲存空間。 此模式下DBA只能執行完整備份與差異備份。 1.交易記錄的管理負擔降至最低,因為交易記錄不會備份。 2.如果資料庫已損毀,簡單復原模式就會面臨工作損失風險。 3.資料只能復原至遺失資料的最近一次備份。因此,在簡單復原模式下,備份間隔不應該太長,以免損失大量資料。因此若無法接受損失最新變更的實際執行系統而言,簡單復原模式 不是適當的選擇。建議使用完整復原模式。 4.對於使用者資料庫而言,簡單復原模式,通常適合用於測試及開發資料庫,或是唯讀資料佔大部分的資料庫,例如資料倉儲。 完整復原模式(Full Recovery model) 所有交易紀錄會被SQL Server保存在該資料庫的紀錄檔內。DBA可以針對該資料庫,進行完整備份、差異備份和交易紀錄備份。 大量紀錄復原模式(Bulk-logged Recovery model) 除了BULK行為(載入大量資料或建立索引)所產生的交易紀錄之外, 絕大多數的交易紀錄都會被保留,所以此模式無法保證能將資料庫還原到過去的任何時間,因為沒有BULK成為的交易紀錄。 基本處裡SOP: Step1.把DB復原模式更換為簡單模式。 Step2.執行記錄檔壓縮(也就是所謂的 shrink)。 Step3.將