從零開始學習 VB.NET 防範 XSS攻擊教學

更新於 發佈於 閱讀時間約 1 分鐘

什麼是 XSS 攻擊?

XSS(Cross-Site Scripting,跨站腳本攻擊)是一種常見的 Web 安全漏洞,攻擊者透過向網站輸入惡意 JavaScript 程式碼,使其在其他使用者的瀏覽器中執行。這可能導致惡意重導、竊取 Cookie、偽造請求等安全風險。

在 ASP.NET Web Forms 應用程式中,如果沒有適當處理使用者輸入,攻擊者可以透過 <script> 標籤插入惡意指令碼。

XSS 攻擊測試範例

假設我們有一個簡單的表單,讓使用者輸入姓名並顯示歡迎訊息。

ASP.NET Web Forms 頁面(Default.aspx)

<%@ Page Title="Home Page" Language="VB" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Default.aspx.vb" Inherits="WebApplication1._Default" ValidateRequest="false" %>

<asp:Content ID="BodyContent" ContentPlaceHolderID="MainContent" runat="server">

<main>
<section class="row" aria-labelledby="aspnetTitle">
<h1 id="aspnetTitle">ASP.NET</h1>
<p class="lead">ASP.NET is a free web framework for building great Web sites and Web applications using HTML, CSS, and JavaScript.</p>
<p><a href="http://www.asp.net" class="btn btn-primary btn-md">Learn more &raquo;</a></p>
</section>

<div class="row">
<section class="col-md-4" aria-labelledby="gettingStartedTitle">
<h2 id="gettingStartedTitle">Getting started</h2>
<p>
ASP.NET Web Forms lets you build dynamic websites using a familiar drag-and-drop, event-driven model.
A design surface and hundreds of controls and components let you rapidly build sophisticated, powerful UI-driven sites with data access.
</p>
<p>
<a class="btn btn-default" href="https://go.microsoft.com/fwlink/?LinkId=301948">Learn more &raquo;</a>
</p>
</section>
<section class="col-md-4" aria-labelledby="librariesTitle">
<h2 id="librariesTitle">Get more libraries</h2>
<p>
NuGet is a free Visual Studio extension that makes it easy to add, remove, and update libraries and tools in Visual Studio projects.
</p>
<p>
<a class="btn btn-default" href="https://go.microsoft.com/fwlink/?LinkId=301949">Learn more &raquo;</a>
</p>
</section>
<section class="col-md-4" aria-labelledby="hostingTitle">
<h2 id="hostingTitle">Web Hosting</h2>
<p>
You can easily find a web hosting company that offers the right mix of features and price for your applications.
</p>
<p>
<a class="btn btn-default" href="https://go.microsoft.com/fwlink/?LinkId=301950">Learn more &raquo;</a>
</p>
</section>
</div>
<div>
<asp:Label ID="Label1" runat="server" Text="請輸入您的名字:" />
<asp:TextBox ID="TextBox1" runat="server" AutoPostBack="True"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="送出" OnClick="Button1_Click" CssClass="btn btn-primary"/>
<br /><br />
<asp:Label ID="ResultLabel" runat="server" ForeColor="Blue" />
</div>
</main>
</asp:Content>

後端程式碼(Default.aspx.vb)

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
Dim userName As String = TextBox1.Text.Trim()

If userName <> "" Then
ResultLabel.Text = "Hello, " & userName & "!歡迎來到 ASP.NET Web Forms!"
Else
ResultLabel.Text = "請輸入您的名字!"
End If
End Sub



模擬 XSS 測試

正常頁面如下

raw-image

如果用戶輸入以下內容:

<script>alert('XSS 測試成功!')</script>

這段腳本將會被執行,導致彈出提示框,這就代表網站存在 XSS 漏洞。

raw-image

如何防範 XSS 攻擊?

使用 Server.HtmlEncode() 來轉譯輸入

如果你的應用程式不需要 HTML 標籤,那麼最簡單的方法就是對所有輸入進行 HTML 編碼,防止 JavaScript 執行。

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
Dim userName As String = TextBox1.Text.Trim()

If userName <> "" Then
ResultLabel.Text = "Hello, " & Server.HtmlEncode(userName) & "!歡迎來到 ASP.NET Web Forms!"
Else
ResultLabel.Text = "請輸入您的名字!"
End If
End Sub


這樣即使輸入 <script>alert('XSS')</script>,也只會顯示成純文字,而不會執行 JavaScript。

raw-image

結論

XSS(跨網站指令碼攻擊)是一種常見的 Web 安全漏洞,攻擊者可以利用未經過濾的輸入來注入惡意腳本,進而影響其他用戶的瀏覽體驗,甚至竊取敏感資訊,透過防護措施,我們可以有效降低 XSS 攻擊的風險,確保 ASP.NET 應用程式的安全性,提供用戶更可靠的使用體驗。

如果你有興趣進一步學習,請留言告訴我或留言與我分享~~~~

avatar-img
1會員
19內容數
留言
avatar-img
留言分享你的想法!
小猴工程師 的其他內容
這篇文章提供一個逐步指南,教導讀者如何使用VB.Net和ASP.NET Web Forms建立一個簡單的Web應用程式。從安裝開發環境到撰寫程式碼、執行與測試,步驟清晰易懂,適合初學者學習。
產前基因檢測已成為許多準父母關注的焦點,本文詳細說明染色體異常檢測(如NIPT、CMA)和單基因遺傳病檢測的差異、優缺點、以及不同風險族群的建議檢測方案,幫助準父母們更瞭解產前基因檢測,做出更適合自己的選擇。
本篇文章介紹 Python 的 asyncio 標準庫,說明其用於非同步編程的優勢,並深入探討 await, asyncio.create_task(), asyncio.gather() 的用法與差異,以提升 I/O 密集型應用的效能。
這篇文章介紹如何使用 CCXT 這個強大的 Python 套件來存取加密貨幣交易所的數據。文章涵蓋安裝、基本使用方法、取得市場數據、取得交易對列表、取得歷史 K 線數據以及 WebSocket 即時數據等功能,並以 Binance 作為範例示範。
正確的 Kubernetes 叢集開關機流程和節點維護,是確保叢集穩定運行的關鍵。本文詳細介紹啟動、關閉 Kubernetes 叢集的步驟,以及使用 cordon、drain 和 uncordon 命令進行節點維護的最佳實踐,並提供開關機順序建議,最大限度地減少對應用程序的影響。
Kubernetes 是一個強大的容器編排工具,本文將介紹其核心概念、實際操作步驟和常見問題解決方案,並提供進階學習方向,幫助讀者快速入門 Kubernetes。
這篇文章提供一個逐步指南,教導讀者如何使用VB.Net和ASP.NET Web Forms建立一個簡單的Web應用程式。從安裝開發環境到撰寫程式碼、執行與測試,步驟清晰易懂,適合初學者學習。
產前基因檢測已成為許多準父母關注的焦點,本文詳細說明染色體異常檢測(如NIPT、CMA)和單基因遺傳病檢測的差異、優缺點、以及不同風險族群的建議檢測方案,幫助準父母們更瞭解產前基因檢測,做出更適合自己的選擇。
本篇文章介紹 Python 的 asyncio 標準庫,說明其用於非同步編程的優勢,並深入探討 await, asyncio.create_task(), asyncio.gather() 的用法與差異,以提升 I/O 密集型應用的效能。
這篇文章介紹如何使用 CCXT 這個強大的 Python 套件來存取加密貨幣交易所的數據。文章涵蓋安裝、基本使用方法、取得市場數據、取得交易對列表、取得歷史 K 線數據以及 WebSocket 即時數據等功能,並以 Binance 作為範例示範。
正確的 Kubernetes 叢集開關機流程和節點維護,是確保叢集穩定運行的關鍵。本文詳細介紹啟動、關閉 Kubernetes 叢集的步驟,以及使用 cordon、drain 和 uncordon 命令進行節點維護的最佳實踐,並提供開關機順序建議,最大限度地減少對應用程序的影響。
Kubernetes 是一個強大的容器編排工具,本文將介紹其核心概念、實際操作步驟和常見問題解決方案,並提供進階學習方向,幫助讀者快速入門 Kubernetes。
本篇參與的主題活動
pixiv 發表 BOOTH 3D 虛擬物件交易白皮書 2025,去年平台上 3D 模型交易金額增加 187%,交易件數也翻倍。「今年很可能是行動虛擬角色元年!」pixiv 整合旗下 VRoid、BOOTH 資源,並發表 VEAT,進軍手機 app ,期望讓 3D avatar 擴散至更多平台。
這套寶可夢牌組以瑪沙耶、恰雷姆、利歐路和路卡利歐為核心,搭配瑪夏多和樹才怪,透過巧妙的組合和運氣,能在短時間內打出高傷害。本文詳細介紹牌組配置、核心戰術、優缺點分析和戰術提示,適合喜歡高風險高回報玩法的玩家。
身為一個崇尚極簡主義者,近期我也把身邊的包包精簡到三個,並且感受到包包斷捨離後的好處,一起來看我是如何實踐的吧!
我的得力助手T小姐在短時間內經歷了2次流產。 第一次流產後沒幾個月又急著要懷上,其實我還蠻不能理解的,身體都還沒復原、還沒查清楚流產的原因又急著懷孕真的風險太大。第二次也是在6周左右又流產了,這次終於好好的去醫院檢查原因,然後讓身體休息了近一年才又懷孕。 但是我聽了他上次流產的原因,是染色體異常
本文將為大家介紹一套以葉伊布GX為核心的水草混合治癒型控場牌組,適合喜歡持久戰的玩家。 目錄 牌組概述 核心卡片介紹 配套訓練家卡 能量配置策略 對戰技巧 常見對手應對 替換建議 牌組概述 這套牌組以葉伊布ex為核心,搭配水屬性能量與珠貝的治癒效果,打造一套難以擊倒的生存型牌
pixiv 發表 BOOTH 3D 虛擬物件交易白皮書 2025,去年平台上 3D 模型交易金額增加 187%,交易件數也翻倍。「今年很可能是行動虛擬角色元年!」pixiv 整合旗下 VRoid、BOOTH 資源,並發表 VEAT,進軍手機 app ,期望讓 3D avatar 擴散至更多平台。
這套寶可夢牌組以瑪沙耶、恰雷姆、利歐路和路卡利歐為核心,搭配瑪夏多和樹才怪,透過巧妙的組合和運氣,能在短時間內打出高傷害。本文詳細介紹牌組配置、核心戰術、優缺點分析和戰術提示,適合喜歡高風險高回報玩法的玩家。
身為一個崇尚極簡主義者,近期我也把身邊的包包精簡到三個,並且感受到包包斷捨離後的好處,一起來看我是如何實踐的吧!
我的得力助手T小姐在短時間內經歷了2次流產。 第一次流產後沒幾個月又急著要懷上,其實我還蠻不能理解的,身體都還沒復原、還沒查清楚流產的原因又急著懷孕真的風險太大。第二次也是在6周左右又流產了,這次終於好好的去醫院檢查原因,然後讓身體休息了近一年才又懷孕。 但是我聽了他上次流產的原因,是染色體異常
本文將為大家介紹一套以葉伊布GX為核心的水草混合治癒型控場牌組,適合喜歡持久戰的玩家。 目錄 牌組概述 核心卡片介紹 配套訓練家卡 能量配置策略 對戰技巧 常見對手應對 替換建議 牌組概述 這套牌組以葉伊布ex為核心,搭配水屬性能量與珠貝的治癒效果,打造一套難以擊倒的生存型牌
你可能也想看
Google News 追蹤
在今天的數字世界中,網站安全性是極為重要的議題。隨著越來越多的網站選擇採用HTTPS協議加密數據傳輸,但這並不意味著它是絕對安全的。事實上,HTTPS本身也存在著一些安全隱患,這些隱患可能會影響網站的安全性和用戶的數據隱私。 1. SSL/TLS 憑證漏洞 HTTPS的加密基於SSL/TLS
在數位化日益深入的今天,駭客網路攻擊成為了各種組織和個人面臨的嚴重挑戰。本文將探討駭客網路攻擊的種類、影響及其防範策略,幫助讀者更好地理解和應對這一重要的安全問題。 什麼是駭客網路攻擊? 駭客網路攻擊是指未經授權的個人或組織通過技術手段,針對計算機系統、網路基礎設施或數據進行的攻擊行為。攻擊者可
在當今數位化的時代,企業資訊安全已經成為了極為重要的議題。隨著科技的不斷進步,網路犯罪的手法也層出不窮,對企業的資訊安全造成了嚴重的威脅。面對這一挑戰,企業應該如何有效地保護自身的資訊安全呢?
平日裡喜歡輕鬆愉快地生活,但有些事情還是得認真對待( • ̀ω•́ ) 今天跟大家分享資訊安全問題,你有沒有被網站詐騙的經驗呢? 在這個數位時代,我們大多數人都會在網上進行各種活動,從購物到瀏覽新聞,甚至處理金融交易。但是,隨之而來的風險也不容忽視。有時候,我們可能會遇到一些看似正常的企業網站,
Thumbnail
我們分析了許多加密貨幣詐騙案例,歸納出一些共通的行為特徵要告訴你,讓你防患於未然;萬一日後自己或朋友遇到類似情境,就可以馬上辨識出這些警訊,避免成為加密貨幣詐騙的受害者。
描述我所瞭解的 Web 攻擊技術 何謂網路攻擊? 駭客透過各種系統漏洞或惡意程式,搭配許多技術和工具進行攻擊。目標是要在企業或個人電腦網路中損害、取得控制權或存取重要的文件和系統。 例如: XSS(Cross-Site Scripting,跨站腳本攻擊/跨網站指令碼):指網路罪犯透過存在安全
Thumbnail
談了許多網路安全的議題,提醒民眾要注意哪些事情,建構哪些網路安全思維,讓我們可以降低踏入詐騙陷阱的風險。但除了民眾本身要不斷學習、提升防詐意識外,是不是還有其他方面的作法呢? 本文就來聊聊在企業端可以做些什麼。 要打造一個密不可破的防護網,企業端就不能夠缺席。 舉幾個例子讓大家知道。
Thumbnail
互聯網的時代中我們幾乎都離不開網路,那如果能夠對於Web具備基礎的知識,就能夠讓我們在使用網路的過程中提升風險意識,以減少被竊取、盜用的風險,進而保護個人資產,因此多一份知識在身上也就等於多了一份防身的武器,一天學一點,透過微習慣讓我們享受複利的效應。 攻擊的類型有哪些? 可能造成的危害 資源參考
Thumbnail
Cross-Site Scripting簡稱XSS,它指的是駭客在網頁裡插入惡意程式碼,當其他user瀏覽該網頁時,惡意網頁程式碼就會被執行。
在今天的數字世界中,網站安全性是極為重要的議題。隨著越來越多的網站選擇採用HTTPS協議加密數據傳輸,但這並不意味著它是絕對安全的。事實上,HTTPS本身也存在著一些安全隱患,這些隱患可能會影響網站的安全性和用戶的數據隱私。 1. SSL/TLS 憑證漏洞 HTTPS的加密基於SSL/TLS
在數位化日益深入的今天,駭客網路攻擊成為了各種組織和個人面臨的嚴重挑戰。本文將探討駭客網路攻擊的種類、影響及其防範策略,幫助讀者更好地理解和應對這一重要的安全問題。 什麼是駭客網路攻擊? 駭客網路攻擊是指未經授權的個人或組織通過技術手段,針對計算機系統、網路基礎設施或數據進行的攻擊行為。攻擊者可
在當今數位化的時代,企業資訊安全已經成為了極為重要的議題。隨著科技的不斷進步,網路犯罪的手法也層出不窮,對企業的資訊安全造成了嚴重的威脅。面對這一挑戰,企業應該如何有效地保護自身的資訊安全呢?
平日裡喜歡輕鬆愉快地生活,但有些事情還是得認真對待( • ̀ω•́ ) 今天跟大家分享資訊安全問題,你有沒有被網站詐騙的經驗呢? 在這個數位時代,我們大多數人都會在網上進行各種活動,從購物到瀏覽新聞,甚至處理金融交易。但是,隨之而來的風險也不容忽視。有時候,我們可能會遇到一些看似正常的企業網站,
Thumbnail
我們分析了許多加密貨幣詐騙案例,歸納出一些共通的行為特徵要告訴你,讓你防患於未然;萬一日後自己或朋友遇到類似情境,就可以馬上辨識出這些警訊,避免成為加密貨幣詐騙的受害者。
描述我所瞭解的 Web 攻擊技術 何謂網路攻擊? 駭客透過各種系統漏洞或惡意程式,搭配許多技術和工具進行攻擊。目標是要在企業或個人電腦網路中損害、取得控制權或存取重要的文件和系統。 例如: XSS(Cross-Site Scripting,跨站腳本攻擊/跨網站指令碼):指網路罪犯透過存在安全
Thumbnail
談了許多網路安全的議題,提醒民眾要注意哪些事情,建構哪些網路安全思維,讓我們可以降低踏入詐騙陷阱的風險。但除了民眾本身要不斷學習、提升防詐意識外,是不是還有其他方面的作法呢? 本文就來聊聊在企業端可以做些什麼。 要打造一個密不可破的防護網,企業端就不能夠缺席。 舉幾個例子讓大家知道。
Thumbnail
互聯網的時代中我們幾乎都離不開網路,那如果能夠對於Web具備基礎的知識,就能夠讓我們在使用網路的過程中提升風險意識,以減少被竊取、盜用的風險,進而保護個人資產,因此多一份知識在身上也就等於多了一份防身的武器,一天學一點,透過微習慣讓我們享受複利的效應。 攻擊的類型有哪些? 可能造成的危害 資源參考
Thumbnail
Cross-Site Scripting簡稱XSS,它指的是駭客在網頁裡插入惡意程式碼,當其他user瀏覽該網頁時,惡意網頁程式碼就會被執行。