防禦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
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
Thumbnail
媒體報導,繼美國前國安顧問歐布萊恩呼籲台灣應增加國防支出後,曾在川普政府任職的前國防部副助理部長柯伯吉(Elbridge Colby)日前亦在「Taipei Times」撰文主張,台灣應提高國防預算編列,從目前相當於年度國內生產毛額(GDP)的2.5%,提高到至少5%。
Thumbnail
每次當咕唷流的均線沒有跌破,被撐住的時候 往往都是有主力或大戶的成本不能跌破 否則,該個股就會出現不可控的賣壓 那麼就會有人防守,而往往會守的人 除了大戶自己本身之外,還有投信 當市場短線出現極大賣壓時 (例如8月5日星期一與9月4日星期三)
Thumbnail
我們的家是我們最安全的避風港,應該是我們最能夠感到安全且放心的場所。 家庭的防禦魔法就像是我們的根基,請永遠記得家庭邊界保護魔法的重要性。 如果你的家目前處於無防禦狀態,我們會很建議你使用這個「家庭邊界保護魔法」。 ▍需要準備的物品: 鹽、紅辣椒、黑胡椒和一個用來混合它們的碗。 我喜歡
Thumbnail
今天就來分享跟呼吸系統有關的精油 5款精油.升級呼吸道保護力 檸檬:增強身體免疫系統,還有良好的殺菌效果。 百里香:通暢呼吸道的推薦之一,針對預防肺部感染、活化肺部功能、提高白血球免疫力,以及改善各種呼吸道、口腔感染都有助益。 綠花白千層
部分知名店家在註冊商標的時候,會把名稱或字形相近的字一併註冊,為的是防止競爭對手或不肖業者搶註冊造成消費者混淆,進而影響商譽,如「大白兔」奶糖的生產廠家註冊了十幾個商標,包括大灰兔、大黑兔、小白兔等;「小米」則把紅米、藍米等多個商標都註冊了,這是一種防禦策略,也稱防禦商標。
Thumbnail
有些人可能會預設或預測立場,因為他們可能: 曾有類似的經驗或觀察到相似的情況,因此他們可能會假設…….
Thumbnail
《不要試圖預測市場,而要準備好參與市場》 在近期的採訪當中,老牛與不少夥伴們分享了投資策略。其中適合小資新手的獲利入門就是「ETF」而訊息如雪片般飛來,最常被問到的就是「月月配」我在新書當中,針對不同投資人,提供了建議組合。 今天就以防禦型投資人的角度切入來分享月月配息組合。
Thumbnail
關於黑魔法防禦術的課程綱要。 本文介紹如何使用Mplus和PyMC進行數據分析,內容包括Mplus和PyMC的基本介紹,以及如何應用它們進行數據分析。
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
Thumbnail
媒體報導,繼美國前國安顧問歐布萊恩呼籲台灣應增加國防支出後,曾在川普政府任職的前國防部副助理部長柯伯吉(Elbridge Colby)日前亦在「Taipei Times」撰文主張,台灣應提高國防預算編列,從目前相當於年度國內生產毛額(GDP)的2.5%,提高到至少5%。
Thumbnail
每次當咕唷流的均線沒有跌破,被撐住的時候 往往都是有主力或大戶的成本不能跌破 否則,該個股就會出現不可控的賣壓 那麼就會有人防守,而往往會守的人 除了大戶自己本身之外,還有投信 當市場短線出現極大賣壓時 (例如8月5日星期一與9月4日星期三)
Thumbnail
我們的家是我們最安全的避風港,應該是我們最能夠感到安全且放心的場所。 家庭的防禦魔法就像是我們的根基,請永遠記得家庭邊界保護魔法的重要性。 如果你的家目前處於無防禦狀態,我們會很建議你使用這個「家庭邊界保護魔法」。 ▍需要準備的物品: 鹽、紅辣椒、黑胡椒和一個用來混合它們的碗。 我喜歡
Thumbnail
今天就來分享跟呼吸系統有關的精油 5款精油.升級呼吸道保護力 檸檬:增強身體免疫系統,還有良好的殺菌效果。 百里香:通暢呼吸道的推薦之一,針對預防肺部感染、活化肺部功能、提高白血球免疫力,以及改善各種呼吸道、口腔感染都有助益。 綠花白千層
部分知名店家在註冊商標的時候,會把名稱或字形相近的字一併註冊,為的是防止競爭對手或不肖業者搶註冊造成消費者混淆,進而影響商譽,如「大白兔」奶糖的生產廠家註冊了十幾個商標,包括大灰兔、大黑兔、小白兔等;「小米」則把紅米、藍米等多個商標都註冊了,這是一種防禦策略,也稱防禦商標。
Thumbnail
有些人可能會預設或預測立場,因為他們可能: 曾有類似的經驗或觀察到相似的情況,因此他們可能會假設…….
Thumbnail
《不要試圖預測市場,而要準備好參與市場》 在近期的採訪當中,老牛與不少夥伴們分享了投資策略。其中適合小資新手的獲利入門就是「ETF」而訊息如雪片般飛來,最常被問到的就是「月月配」我在新書當中,針對不同投資人,提供了建議組合。 今天就以防禦型投資人的角度切入來分享月月配息組合。
Thumbnail
關於黑魔法防禦術的課程綱要。 本文介紹如何使用Mplus和PyMC進行數據分析,內容包括Mplus和PyMC的基本介紹,以及如何應用它們進行數據分析。