首頁 > web前端 > js教程 > 主體

JavaScript 注入攻擊

高洛峰
發布: 2016-11-28 15:49:41
原創
1847 人瀏覽過

什麼是 JavaScript 注入攻擊?
每當接受使用者輸入的內容並重新顯示這些內容時,網站就很容易遭受 JavaScript 注入攻擊。讓我們研究一個容易遭受 JavaScript 注入攻擊的具體應用程式。假設已經創建了一個客戶回饋網站。客戶可以造訪網站並輸入對產品的回饋資訊。當客戶提交回饋時,回饋訊息會重新顯示在回饋頁面上。

客戶回饋網站是一個簡單的網站。不幸的是,此網站容易遭受 JavaScript 注入攻擊。

假設正在將以下文字輸入到客戶回饋表單中:


此文字表示顯示警告訊息框的 JavaScript 腳本。在某人將此腳本提交到客戶回饋表單後,訊息 Boo! 會在將來任何人造訪客戶回饋網站時顯示

的攻擊。您可能也認為別人不會透過 JavaScript 注入攻擊搞破壞。

現在,您對 JavaScript 注入攻擊的第一個反應也許是不理會。您可能認為 JavaScript 注入攻擊不過是一種 無傷大雅

不幸的是,駭客會透過在網站中註入 JavaScript 進行破壞活動。使用 JavaScript 注入攻擊可以執行跨站腳本 (XSS) 攻擊。在跨站腳本攻擊中,可以竊取保密的使用者資訊並將資訊傳送到另一個網站。

例 如,駭客可以使用 JavaScript 注入攻擊來竊取其他使用者瀏覽器的 Cookies 值。如果將敏感資訊(如密碼、信用卡帳號或社會保險號碼)保存在瀏覽器 Cookies 中,那麼駭客可以使用 JavaScript 注入攻擊來竊取這些資訊。或者,如果使用者將敏感資訊輸入到頁面的表單欄位中,而頁面受到 JavaScript 攻擊的危害,那麼駭客可以使用注入的 JavaScript 來取得表單資料並將其傳送到另一個網站。

請高度重視。認真對待 JavaScript 注入攻擊並保護用戶的保密資訊。在接下來的兩部分中,我們將討論防止 ASP.NET MVC 應用程式受到 JavaScript 注入攻擊的兩種技術。

方法 2:寫入資料庫之前的 HTML 編碼
除了在視圖中顯示資料時使用 HTML 編碼數據,還可以在將資料提交到資料庫之前使用 HTML 編碼資料。
第二種方法正是程式清單 4 中 controller 的情況。

如:

public ActionResult Create(string message)
{
// Add feedback
var newFeedback = new Feedback();
newFeedback.Message = newFeedback = new Feedback();
newFeedback.Message = newFeedbackmfates);
db.Feedbacks.InsertOnSubmit(newFeedback);
db.SubmitChanges();

// Redirect
return RedirectToAction(“Index”);
}

return RedirectToAction(“Index”);
}

) 操作中經過HTML 編碼的。當在視圖中重新顯示
示 Message 時,Message 會被 HTML 編碼,因而不會執行任何注入到 Message 中的 JavaScript。

總結
通常,人們喜歡使用本教程中討論的第一種方法,而不喜歡使用第二種方法。第二種方法的問題在於在數

據庫中最終會保留 HTML 編碼的資料。換言之,資料庫中的資料會包含奇怪的字元。這有什麼壞處呢?如

果需要以網頁以外的形式顯示資料庫數據,則會遇到問題。例如,不能輕易在 Windows Forms 應用程式
序中顯示資料。

🎜🎜🎜
相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板