防禦XSS攻擊

更新 發佈閱讀 4 分鐘

1. 設定cookie為HttpOnly

在一般的情況下,cookie是可以透過javascript來存取的(document.cookie),如同上一篇所說的,有可能會有XSS攻擊的風險。

將cookie設定為HttpOnly,表示這個cookie無法透過js存取,document.cookie裡面就不會顯示出HttpOnly的cookie了。

因此我們在server端設定session的時候,應該要把http only打開。

如下程式碼,設定session沒有打開http only:

vocus|新世代的創作平台
vocus|新世代的創作平台

javascript透過document.cookie可以拿到session id。

接著我們改一下程式:

vocus|新世代的創作平台
vocus|新世代的創作平台
vocus|新世代的創作平台

可以看到PHPSESSID這個cookie被設定為HttpOnly了,無法再利用document.cookie來取得。

接著我們再改一下程式:

vocus|新世代的創作平台
vocus|新世代的創作平台

這次多設定myName=Vic的cookie上去,可以發現document.cookie沒有出現PHPSESSID但是有出現myName,因為myName沒有設定為HttpOnly。

接著再改一下程式:

vocus|新世代的創作平台
vocus|新世代的創作平台
vocus|新世代的創作平台

2. 對user輸入內容encode

不論是前端或後端,user輸入的任何內容都是不可信的,必須通過檢查,不過前端是有被竄改code的可能的,因此若前端沒檢查,至少後端一定要檢查。

以php為例,可以使用htmlspecialchars函數來將HTML編碼,這樣就能避免瀏覽器直接執行惡意程式碼,以下直接從程式來看:

這邊修改一下上一篇: Cross-Site Scripting 攻擊的程式碼,在塞入資料庫之前做encode:

vocus|新世代的創作平台
vocus|新世代的創作平台
vocus|新世代的創作平台
vocus|新世代的創作平台


其中ENT_QUOTES表示雙引號跟單引號都要轉換!

按下Send送出後,可以看到塞到資料庫的是有經過編碼的,<>"這些關鍵字都被encode了,最後query出來在瀏覽器看到的是瀏覽器經過decode後的結果,因此就不會被瀏覽器當作是程式碼執行了。

3. 假如是用php的話,關閉phpinfo頁面

phpinfo裡面包含了cookie資訊,如果沒有關閉這個頁面,就會給駭客有機會拿到cookie!


本筆記參考:
1. https://devco.re/blog/2014/06/11/setcookie-httponly-security-issues-of-http-headers-3/
2. https://autoposter.pixnet.net/blog/post/116102978
3. https://kknews.cc/zh-tw/code/v336nqq.html
4. https://www.webtech.tw/info.php?tid=PHP_htmlspecialchars_%E5%87%BD%E6%95%B8%E5%8A%9F%E8%83%BD%E8%88%87%E7%94%A8%E6%B3%95

留言
avatar-img
Vic Lin的沙龍
20會員
161內容數
Vic Lin的沙龍的其他內容
2023/08/13
父元件 傳遞方法使用@ <template>    ...    <Login @modalClose="modalClose"/> ... </template> <script setup>     const _modal = ref();     function m
2023/08/13
父元件 傳遞方法使用@ <template>    ...    <Login @modalClose="modalClose"/> ... </template> <script setup>     const _modal = ref();     function m
2023/03/25
前情提要 由於我的筆電已經用了10年,無法再戰下去了,且有預算考量,加上使用電腦幾乎都是定點,只有偶爾回家的時候會需要攜帶,因此最終選擇了迷你電腦,體積小不占空間,又方便攜帶,剛好符合我的需求。 菜單 由於這台無法裝獨顯,所以CPU的部分選擇 AMD R5 3400G(含Vega 11內
Thumbnail
2023/03/25
前情提要 由於我的筆電已經用了10年,無法再戰下去了,且有預算考量,加上使用電腦幾乎都是定點,只有偶爾回家的時候會需要攜帶,因此最終選擇了迷你電腦,體積小不占空間,又方便攜帶,剛好符合我的需求。 菜單 由於這台無法裝獨顯,所以CPU的部分選擇 AMD R5 3400G(含Vega 11內
Thumbnail
2023/03/10
Nuxt3中可使用useFetch來獲取數據,不須再引用axios,相當方便: 本筆記參考: https://juejin.cn/post/7104071421160063012 https://juejin.cn/post/7086472647575339045
2023/03/10
Nuxt3中可使用useFetch來獲取數據,不須再引用axios,相當方便: 本筆記參考: https://juejin.cn/post/7104071421160063012 https://juejin.cn/post/7086472647575339045
看更多
你可能也想看
Thumbnail
CSRF全名為 Cross Site Request Forgery( 跨站請求偽造)。
Thumbnail
CSRF全名為 Cross Site Request Forgery( 跨站請求偽造)。
Thumbnail
延續先前的筆記,「網路請求」是瀏覽器和伺服器的溝通橋梁,目的是為了取得資料庫內的資源,除了 CORS 這種瀏覽器本身的阻擋機制,伺服器也會需要進行「身分驗證或授權」這道阻擋,並不是使用者有帶上 header 告知身分,就一定可以把資料 response 回來的。
Thumbnail
延續先前的筆記,「網路請求」是瀏覽器和伺服器的溝通橋梁,目的是為了取得資料庫內的資源,除了 CORS 這種瀏覽器本身的阻擋機制,伺服器也會需要進行「身分驗證或授權」這道阻擋,並不是使用者有帶上 header 告知身分,就一定可以把資料 response 回來的。
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
《轉轉生》(Re:INCARNATION)為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,結合拉各斯街頭節奏、Afrobeat/Afrobeats、以及約魯巴宇宙觀的非線性時間,建構出關於輪迴的「誕生—死亡—重生」儀式結構。本文將從約魯巴哲學概念出發,解析其去殖民的身體政治。
Thumbnail
《轉轉生》(Re:INCARNATION)為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,結合拉各斯街頭節奏、Afrobeat/Afrobeats、以及約魯巴宇宙觀的非線性時間,建構出關於輪迴的「誕生—死亡—重生」儀式結構。本文將從約魯巴哲學概念出發,解析其去殖民的身體政治。
Thumbnail
Cross-Site Scripting簡稱XSS,它指的是駭客在網頁裡插入惡意程式碼,當其他user瀏覽該網頁時,惡意網頁程式碼就會被執行。
Thumbnail
Cross-Site Scripting簡稱XSS,它指的是駭客在網頁裡插入惡意程式碼,當其他user瀏覽該網頁時,惡意網頁程式碼就會被執行。
Thumbnail
互聯網的時代中我們幾乎都離不開網路,那如果能夠對於Web具備基礎的知識,就能夠讓我們在使用網路的過程中提升風險意識,以減少被竊取、盜用的風險,進而保護個人資產,因此多一份知識在身上也就等於多了一份防身的武器,一天學一點,透過微習慣讓我們享受複利的效應。 CRSF攻擊示意圖 如何防範CSRF?
Thumbnail
互聯網的時代中我們幾乎都離不開網路,那如果能夠對於Web具備基礎的知識,就能夠讓我們在使用網路的過程中提升風險意識,以減少被竊取、盜用的風險,進而保護個人資產,因此多一份知識在身上也就等於多了一份防身的武器,一天學一點,透過微習慣讓我們享受複利的效應。 CRSF攻擊示意圖 如何防範CSRF?
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
文章最後將會提供一套CSP安全檢查工具,保護自身,避免踏入不安全地帶! 🔔還沒成為Potato會員的朋友點這裡加入哦,撰寫文章還能挖礦打造被動收入 🔔 為什麼制定安全政策這麼重要呢? 可以制定哪些規則呢? 這邊僅著重於概念的描述,因此列出幾個常見的來源白名單配置選項,至於完整選項請參考這裡。
Thumbnail
文章最後將會提供一套CSP安全檢查工具,保護自身,避免踏入不安全地帶! 🔔還沒成為Potato會員的朋友點這裡加入哦,撰寫文章還能挖礦打造被動收入 🔔 為什麼制定安全政策這麼重要呢? 可以制定哪些規則呢? 這邊僅著重於概念的描述,因此列出幾個常見的來源白名單配置選項,至於完整選項請參考這裡。
Thumbnail
互聯網的時代中我們幾乎都離不開網路,那如果能夠對於Web具備基礎的知識,就能夠讓我們在使用網路的過程中提升風險意識,以減少被竊取、盜用的風險,進而保護個人資產,因此多一份知識在身上也就等於多了一份防身的武器,一天學一點,透過微習慣讓我們享受複利的效應。 攻擊的類型有哪些? 可能造成的危害 資源參考
Thumbnail
互聯網的時代中我們幾乎都離不開網路,那如果能夠對於Web具備基礎的知識,就能夠讓我們在使用網路的過程中提升風險意識,以減少被竊取、盜用的風險,進而保護個人資產,因此多一份知識在身上也就等於多了一份防身的武器,一天學一點,透過微習慣讓我們享受複利的效應。 攻擊的類型有哪些? 可能造成的危害 資源參考
Thumbnail
Cookie簡介與個人隱私議題 在談Cookieless之前我們先來了解什麼是Cookie,這裡的Cookie並不是餅乾的意思,而是為了讓人們在網路上通訊時,能夠創造更無縫的體驗,想像一下,假設我們在使用網站時,每切換一頁就要進行登入一次,我想大部分的人都已經抓狂並放棄使用的吧! 而Cookie的出
Thumbnail
Cookie簡介與個人隱私議題 在談Cookieless之前我們先來了解什麼是Cookie,這裡的Cookie並不是餅乾的意思,而是為了讓人們在網路上通訊時,能夠創造更無縫的體驗,想像一下,假設我們在使用網站時,每切換一頁就要進行登入一次,我想大部分的人都已經抓狂並放棄使用的吧! 而Cookie的出
Thumbnail
1. 設定cookie為HttpOnly 在一般的情況下,cookie是可以透過javascript來存取的(document.cookie),如同上一篇所說的,有可能會有XSS攻擊的風險。 將cookie設定為HttpOnly,表示這個cookie無法透過js存取。
Thumbnail
1. 設定cookie為HttpOnly 在一般的情況下,cookie是可以透過javascript來存取的(document.cookie),如同上一篇所說的,有可能會有XSS攻擊的風險。 將cookie設定為HttpOnly,表示這個cookie無法透過js存取。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News