防禦XSS攻擊

閱讀時間約 3 分鐘
1. 設定cookie為HttpOnly
在一般的情況下,cookie是可以透過javascript來存取的(document.cookie),如同上一篇所說的,有可能會有XSS攻擊的風險。

將cookie設定為HttpOnly,表示這個cookie無法透過js存取,document.cookie裡面就不會顯示出HttpOnly的cookie了。
因此我們在server端設定session的時候,應該要把http only打開。
如下程式碼,設定session沒有打開http only:
javascript透過document.cookie可以拿到session id。
接著我們改一下程式:
可以看到PHPSESSID這個cookie被設定為HttpOnly了,無法再利用document.cookie來取得。
接著我們再改一下程式:
這次多設定myName=Vic的cookie上去,可以發現document.cookie沒有出現PHPSESSID但是有出現myName,因為myName沒有設定為HttpOnly。
接著再改一下程式:
2. 對user輸入內容encode
不論是前端或後端,user輸入的任何內容都是不可信的,必須通過檢查,不過前端是有被竄改code的可能的,因此若前端沒檢查,至少後端一定要檢查。
以php為例,可以使用htmlspecialchars函數來將HTML編碼,這樣就能避免瀏覽器直接執行惡意程式碼,以下直接從程式來看:
這邊修改一下上一篇: Cross-Site Scripting 攻擊的程式碼,在塞入資料庫之前做encode:
其中ENT_QUOTES表示雙引號跟單引號都要轉換!

按下Send送出後,可以看到塞到資料庫的是有經過編碼的,<>"這些關鍵字都被encode了,最後query出來在瀏覽器看到的是瀏覽器經過decode後的結果,因此就不會被瀏覽器當作是程式碼執行了。
3. 假如是用php的話,關閉phpinfo頁面
phpinfo裡面包含了cookie資訊,如果沒有關閉這個頁面,就會給駭客有機會拿到cookie!
為什麼會看到廣告
21會員
161內容數
留言0
查看全部
發表第一個留言支持創作者!
Vic Lin的沙龍 的其他內容
Cross-Site Scripting簡稱XSS,它指的是駭客在網頁裡插入惡意程式碼,當其他user瀏覽該網頁時,惡意網頁程式碼就會被執行。
Connection Pool中文為連線池,是位於DB前面的緩衝區。 假如我們只是要一個簡單的query功能,下了一個簡單的查詢SQL,可是卻花了很多時間執行,而且每次都要花這麼多時間,這樣豈不是很浪費嗎? 然而,花時間的地方可能不是你SQL效能的問題,而是你沒使用connection pool。
以瀏覽www.google.com為例,瀏覽器需先找到www.google.com對應的ip地址,才能得到網頁資料,顯示在瀏覽器中。 那要如何才能找到ip呢? 這邊就要提到DNS(Domain Name System),他是一個資料庫,裡面紀錄了域名跟IP的對應,瀏覽器透過DNS可以找到IP。
結構化資料: 事先定義好每個欄位可以存放什麼資料,這種儲存的資料就是結構化資料。 像是關聯式資料庫中的資料,需要先把table欄位定義好,之後才能儲存資料。 半結構化資料: 無需事先定義好資料欄位,每一筆資料能夠根據需求儲存不同的欄位,因此很有彈性,如JSON, XML等等。 非結構化資料: 未整理
OAuth 2.0 是一個開放標準,允許user授權第三方應用存取該user的私有資料,而無需提供帳密資料給第三方應用。
想從javascript拿到不同源的資料,除了上一篇介紹的CORS,其實還有一個東西叫JSOP,是指透過script tag src的方式繞過同源政策來實現cross origin。
Cross-Site Scripting簡稱XSS,它指的是駭客在網頁裡插入惡意程式碼,當其他user瀏覽該網頁時,惡意網頁程式碼就會被執行。
Connection Pool中文為連線池,是位於DB前面的緩衝區。 假如我們只是要一個簡單的query功能,下了一個簡單的查詢SQL,可是卻花了很多時間執行,而且每次都要花這麼多時間,這樣豈不是很浪費嗎? 然而,花時間的地方可能不是你SQL效能的問題,而是你沒使用connection pool。
以瀏覽www.google.com為例,瀏覽器需先找到www.google.com對應的ip地址,才能得到網頁資料,顯示在瀏覽器中。 那要如何才能找到ip呢? 這邊就要提到DNS(Domain Name System),他是一個資料庫,裡面紀錄了域名跟IP的對應,瀏覽器透過DNS可以找到IP。
結構化資料: 事先定義好每個欄位可以存放什麼資料,這種儲存的資料就是結構化資料。 像是關聯式資料庫中的資料,需要先把table欄位定義好,之後才能儲存資料。 半結構化資料: 無需事先定義好資料欄位,每一筆資料能夠根據需求儲存不同的欄位,因此很有彈性,如JSON, XML等等。 非結構化資料: 未整理
OAuth 2.0 是一個開放標準,允許user授權第三方應用存取該user的私有資料,而無需提供帳密資料給第三方應用。
想從javascript拿到不同源的資料,除了上一篇介紹的CORS,其實還有一個東西叫JSOP,是指透過script tag src的方式繞過同源政策來實現cross origin。
你可能也想看
Google News 追蹤
Thumbnail
本專欄將提供給您最新的市場資訊、產業研究、交易心法、精選公司介紹,以上內容並非個股分析,還請各位依據自身狀況作出交易決策。歡迎訂閱支持我,獲得相關內容,也祝您的投資之路順遂! 每年 $990 訂閱方案👉 https://reurl.cc/VNYVxZ 每月 $99 訂閱方案👉https://re
Thumbnail
今天就來分享跟呼吸系統有關的精油 5款精油.升級呼吸道保護力 檸檬:增強身體免疫系統,還有良好的殺菌效果。 百里香:通暢呼吸道的推薦之一,針對預防肺部感染、活化肺部功能、提高白血球免疫力,以及改善各種呼吸道、口腔感染都有助益。 綠花白千層
部分知名店家在註冊商標的時候,會把名稱或字形相近的字一併註冊,為的是防止競爭對手或不肖業者搶註冊造成消費者混淆,進而影響商譽,如「大白兔」奶糖的生產廠家註冊了十幾個商標,包括大灰兔、大黑兔、小白兔等;「小米」則把紅米、藍米等多個商標都註冊了,這是一種防禦策略,也稱防禦商標。
Thumbnail
有些人可能會預設或預測立場,因為他們可能: 曾有類似的經驗或觀察到相似的情況,因此他們可能會假設…….
Thumbnail
《不要試圖預測市場,而要準備好參與市場》 在近期的採訪當中,老牛與不少夥伴們分享了投資策略。其中適合小資新手的獲利入門就是「ETF」而訊息如雪片般飛來,最常被問到的就是「月月配」我在新書當中,針對不同投資人,提供了建議組合。 今天就以防禦型投資人的角度切入來分享月月配息組合。
Thumbnail
關於黑魔法防禦術的課程綱要。 本文介紹如何使用Mplus和PyMC進行數據分析,內容包括Mplus和PyMC的基本介紹,以及如何應用它們進行數據分析。
有個各方面表現都很優秀的女孩,其實確實有些特別的小 "問題" 譬如,別的孩子是缺乏專注力,而她可能是過於專注,以至於把其她的雷達關閉了,有時候會不知道生活中 "重要" 的 "小事"。 她學習一百分,卻常忽略生活中的一些她覺得不重要的事,所以有些大家都知道的,她卻做錯而不自知 別人提醒後,覺得是別人
Thumbnail
國防預算創新高應同時調整國軍體質 明年度國防預算創下新高,但目前以陸軍為主的國軍在此次台海危機中,再次顯得力不從心,凸顯應調整國軍體質的急迫性,相信中國會繼續採用這類灰色作戰行動襲擾台灣,因此未來兵役要延長、國防預算達GDP3%之外,國軍應朝以下方向調整:
Thumbnail
上次我們提到了,用怎麼想來擺脫防禦型思維的操控。 這次,談談怎麼做。 有三個做法,他們是: 1.WOOP思維 2.控制兩分法 3.正念
近日因個人實務經驗不足 為了避免未來評估投資案時只流於單純的合約+財務數字分析 忽略各種經營層面上的瑣碎事項 導致在投資評估時少考慮到應注意而未注意的風險 因此報名了大大學院的郝旭烈(郝哥)的"幫公司獲利的30堂財務思維課" 開啟了實務面的管理知識的思辨過程 其中很多議題都是非常值得思考 本篇文章就
Thumbnail
小時候,或是求學的時候,有聽過一個很有意思的譬喻,就是當你用食指指著別人罵的時候,別忘記同時還有三支手指頭是指著自己的。 意思是如果要對別人撒氣有意見指責...等,其實更多的也指著自己。我們的文化環境背景在很多事情的處理上,更多會有「反求諸己」的意念!
Thumbnail
本專欄將提供給您最新的市場資訊、產業研究、交易心法、精選公司介紹,以上內容並非個股分析,還請各位依據自身狀況作出交易決策。歡迎訂閱支持我,獲得相關內容,也祝您的投資之路順遂! 每年 $990 訂閱方案👉 https://reurl.cc/VNYVxZ 每月 $99 訂閱方案👉https://re
Thumbnail
今天就來分享跟呼吸系統有關的精油 5款精油.升級呼吸道保護力 檸檬:增強身體免疫系統,還有良好的殺菌效果。 百里香:通暢呼吸道的推薦之一,針對預防肺部感染、活化肺部功能、提高白血球免疫力,以及改善各種呼吸道、口腔感染都有助益。 綠花白千層
部分知名店家在註冊商標的時候,會把名稱或字形相近的字一併註冊,為的是防止競爭對手或不肖業者搶註冊造成消費者混淆,進而影響商譽,如「大白兔」奶糖的生產廠家註冊了十幾個商標,包括大灰兔、大黑兔、小白兔等;「小米」則把紅米、藍米等多個商標都註冊了,這是一種防禦策略,也稱防禦商標。
Thumbnail
有些人可能會預設或預測立場,因為他們可能: 曾有類似的經驗或觀察到相似的情況,因此他們可能會假設…….
Thumbnail
《不要試圖預測市場,而要準備好參與市場》 在近期的採訪當中,老牛與不少夥伴們分享了投資策略。其中適合小資新手的獲利入門就是「ETF」而訊息如雪片般飛來,最常被問到的就是「月月配」我在新書當中,針對不同投資人,提供了建議組合。 今天就以防禦型投資人的角度切入來分享月月配息組合。
Thumbnail
關於黑魔法防禦術的課程綱要。 本文介紹如何使用Mplus和PyMC進行數據分析,內容包括Mplus和PyMC的基本介紹,以及如何應用它們進行數據分析。
有個各方面表現都很優秀的女孩,其實確實有些特別的小 "問題" 譬如,別的孩子是缺乏專注力,而她可能是過於專注,以至於把其她的雷達關閉了,有時候會不知道生活中 "重要" 的 "小事"。 她學習一百分,卻常忽略生活中的一些她覺得不重要的事,所以有些大家都知道的,她卻做錯而不自知 別人提醒後,覺得是別人
Thumbnail
國防預算創新高應同時調整國軍體質 明年度國防預算創下新高,但目前以陸軍為主的國軍在此次台海危機中,再次顯得力不從心,凸顯應調整國軍體質的急迫性,相信中國會繼續採用這類灰色作戰行動襲擾台灣,因此未來兵役要延長、國防預算達GDP3%之外,國軍應朝以下方向調整:
Thumbnail
上次我們提到了,用怎麼想來擺脫防禦型思維的操控。 這次,談談怎麼做。 有三個做法,他們是: 1.WOOP思維 2.控制兩分法 3.正念
近日因個人實務經驗不足 為了避免未來評估投資案時只流於單純的合約+財務數字分析 忽略各種經營層面上的瑣碎事項 導致在投資評估時少考慮到應注意而未注意的風險 因此報名了大大學院的郝旭烈(郝哥)的"幫公司獲利的30堂財務思維課" 開啟了實務面的管理知識的思辨過程 其中很多議題都是非常值得思考 本篇文章就
Thumbnail
小時候,或是求學的時候,有聽過一個很有意思的譬喻,就是當你用食指指著別人罵的時候,別忘記同時還有三支手指頭是指著自己的。 意思是如果要對別人撒氣有意見指責...等,其實更多的也指著自己。我們的文化環境背景在很多事情的處理上,更多會有「反求諸己」的意念!