左耳聽風 第四十九周
每週完成一個ARTS: 每週至少做一個 leetcode 的算法題、閱讀並點評至少一篇英文技術文章、學習至少一個技術技巧、分享一篇有觀點和思考的技術文章。(也就是 Algorithm、Review、Tip、Share 簡稱ARTS)
Algorithm
開始按照類型來刷題,本週爲:雙指針、排序貪心 相關,以下爲個人題解:
review
「What I’m Telling Business People About Why Relational Databases Are So Bad」(強化你的 HTTP 安全頭)
我們只需要通過一些簡單的 HTTP 安全頭配置就可以提高我們 web應用的安全性,讓我們來了解下 HTTP 安全頭相關的知識吧。
HTTP 安全頭是什麼?
當瀏覽器向服務器請求一個頁面時,服務器會迴應帶有 HTTP 響應頭的內容,包括:內容編碼、緩存控制、響應狀態等,這些都是 HTTP 安全頭。HTTP 安全頭告訴請求的瀏覽器,如何處理你的頁面內容,例如使用嚴格傳輸安全,你可以強制瀏覽器使用 HTTPS 通訊。
七種不同的 HTTP 安全頭:
Content Security Policy Header(內容安全策略頭):提供一個額外的安全層,同過定義網站內容的來源以幫助網站抵禦跨站腳本攻擊、代碼注入 等網絡攻擊。
X-XSS-Protection Header (防跨站腳本攻擊頭)面對跨站腳本進行過濾,以保護網站的安全。
HTTP Strict Transport Security Header(HTTP 嚴格傳輸頭)。採用 HTPPS 來傳輸內容,而不是通過有可能被感染的 HTPP 來傳輸內容建立連接。
X-Frame-Options Header 通過禁止網站的 iframes 加載來防止網站被挾持。
Expect-CT Header 通過記錄和驗證瀏覽器請求證書的合法性來保護網站安全。
X-Content-Type-Options Header 通過阻止瀏覽器的從已聲明內容中竊取響應來阻止偷渡式下載,已確保內容的正確。
Feature-Policy Header 提供禁止嵌入框架的能力已保護網站。
如何驗證我們的 HTTP 安全頭?
1、使用 KeyCDN’s HTTP Header Checker Tool 等驗證工具來驗證
2、使用谷歌瀏覽器的開發者工具來查看響應頭
3、使用 securityheaders.io 來查看我們的網站。
Tip
如何定位並優化慢查詢 SQL?(以 MySQL 數據庫爲例)
1、 開啓慢 SQL 日誌,根據慢 SQL 日誌定位慢 SQL 語句。show variables like '%quer'%
可查詢數據庫設置,看是否開啓慢 SQL 日誌服務以及相應的存儲位置
set global slow_query_log=on; # 開啓慢 SQL 日誌
set global long_query_time=1; # 設置慢 SQL 時間,即查詢時間超過閾值則記錄在日誌
2、使用 explain 等工具分析 SQL
使用 show status like '%slow_queries%';
查看慢 SQL 語句數量,然後打開本地的慢 SQL 日誌文件。使用 explain SQL 語句
來分析我們的 SQL 語句。
3、修改 SQL 語句或讓 SQL 使用索引。針對 explain 分析的 SQL 語句問題,添加索引或修改 SQL 語句,進行相應的
share
經歷了幾個月的面試,從線上面試到線下宣講會、招聘會的面試大都體驗了一遍,這其中也遇見了一些令我很是討厭的招聘。