欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

什么是JavaScript注入攻擊?

 更新時間:2016年09月14日 17:07:29   作者:Suger_Code  
本文告訴大家什么是js注入,討論防止 ASP.NET MVC 應用程序受到 JavaScript 注入攻擊的兩種技術,感興趣的小伙伴們可以參考一下

Javascript可以作為黑客攻擊網站的一種工具,其中注入js(javascript)惡意腳本就是其中一種手段之一,那么下面,大家來學習一下如何預防js的注入攻擊呢?以下有一個不錯的陳述,跟大家分享:

什么是 JavaScript 注入攻擊?
每當接受用戶輸入的內容并重新顯示這些內容時,網站就很容易遭受 JavaScript 注入攻擊。讓我們研究一個容易遭受 JavaScript 注入攻擊的具體應用程序。假設已經創(chuàng)建了一個客戶反饋網站??蛻艨梢栽L問網站并輸入對產品的反饋信息。當客戶提交反饋時,反饋信息重新顯示在反饋頁面上。

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

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

<script>alert(“Boo!”)</script>

此文本表示顯示警告消息框的 JavaScript 腳本。在某人將此腳本提交到客戶反饋表單后,消息 Boo! 會在將來任何人訪問客戶反饋網站時顯示的攻擊。您可能還認為別人不會通過 JavaScript 注入攻擊搞破壞。

現在,您對 JavaScript 注入攻擊的第一反應也許是不理會。您可能認為 JavaScript 注入攻擊不過是一種無傷大雅,不幸的是,黑客會通過在網站中注入 JavaScript 進行破壞活動。使用 JavaScript 注入攻擊可以執(zhí)行跨站腳本 (XSS) 攻擊。在跨站腳本攻擊中,可以竊取保密的用戶信息并將信息發(fā)送到另一個網站。

例如,黑客可以使用 JavaScript 注入攻擊竊取來自其他用戶瀏覽器的 Cookies 值。如果將敏感信息(如密碼、信用卡帳號或社會保險號碼)保存在瀏覽器 Cookies 中,那么黑客可以使用 JavaScript 注入攻擊竊取這些信息?;蛘?,如果用戶將敏感信息輸入到頁面的表單字段中,而頁面受到 JavaScript 攻擊的危害,那么黑客可以使用注入的 JavaScript 獲取表單數據并將其發(fā)送到另一個網站。

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

方法 1:視圖中的 HTML 編碼 

阻止 JavaScript 注入攻擊的一種簡單方法是重新在視圖中顯示數據時,用 HTML 編碼任何網站用戶輸入的數據

如:<%=Html.Encode(feedback.Message)%>

使用 HTML 編碼一個字符串的含意是什么呢?使用 HTML 編碼字符串時,危險字符如 < 和 > 被替換為 HTML 實體,如 &lt; 和 &gt;。所以,當使用 HTML 編碼字符串 <script>alert(“Boo!”)</script>時,它將轉換為 &lt;script&gt;alert(“Boo!”)&lt;/script&gt;。瀏覽器在解析編碼的字符串時不再執(zhí)行 JavaScript 腳本。而是顯示無害的頁面

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

如:

public ActionResult Create(string message)
{
// Add feedback
var newFeedback = new Feedback();
newFeedback.Message = Server.HtmlEncode(message);
newFeedback.EntryDate = DateTime.Now;
db.Feedbacks.InsertOnSubmit(newFeedback);
db.SubmitChanges(); 
 

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

請注意,Message 的值在提交到數據庫之前是在 Create() 操作中經過 HTML 編碼的。當在視圖中重新顯示 Message 時,Message 被 HTML 編碼,因而不會執(zhí)行任何注入到 Message 中的 JavaScript。

總結

通常,人們喜歡使用本教程中討論的第一種方法,而不喜歡使用第二種方法。第二種方法的問題在于在數據庫中最終會保留 HTML 編碼的數據。換言之,數據庫中的數據會包含奇怪的字符。這有什么壞處呢?如果需要用除網頁以外的形式顯示數據庫數據,則將遇到問題。例如,不能輕易在 Windows Forms 應用程序中顯示數據。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • javascript設置頁面背景色及背景圖片的方法

    javascript設置頁面背景色及背景圖片的方法

    這篇文章主要介紹了javascript設置頁面背景色及背景圖片的方法,涉及JavaScript動態(tài)操作頁面元素屬性的相關技巧,需要的朋友可以參考下
    2015-12-12
  • js實現金山打字通小游戲

    js實現金山打字通小游戲

    這篇文章為大家詳細主要介紹了js實現金山打字通小游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-07-07
  • 使用webpack和rollup打包組件庫的方法

    使用webpack和rollup打包組件庫的方法

    這篇文章主要介紹了使用webpack和rollup打包組件庫的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-02-02
  • 小程序實現列表點贊功能

    小程序實現列表點贊功能

    這篇文章主要為大家詳細介紹了小程序實現列表點贊功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-11-11
  • MUI實現上拉加載和下拉刷新效果

    MUI實現上拉加載和下拉刷新效果

    這篇文章主要為大家詳細介紹了MUI實現上拉加載和下拉刷新效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • 在Iframe中獲取父窗口中表單的值(示例代碼)

    在Iframe中獲取父窗口中表單的值(示例代碼)

    這篇文章主要介紹了在Iframe中獲取父窗口中表單的值(示例代碼)。需要的朋友可以過來參考下,希望對大家有所幫助
    2013-11-11
  • H5跳轉小程序按鈕不顯示(wx-open-launch-weapp)踩坑指南

    H5跳轉小程序按鈕不顯示(wx-open-launch-weapp)踩坑指南

    這篇文章主要給大家介紹了關于H5跳轉小程序按鈕不顯示(wx-open-launch-weapp)踩坑的相關資料,文中介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2023-02-02
  • 關于預加載InstantClick的問題解決方法

    關于預加載InstantClick的問題解決方法

    本篇文章主要介紹了關于預加載InstantClick的問題解決方法,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • js實現滾動條自動滾動到最底部示例代碼

    js實現滾動條自動滾動到最底部示例代碼

    這篇文章主要給大家介紹了關于js實現滾動條自動滾動到最底部的相關資料,文中通過實例代碼介紹的非常詳細,對大家學習或者使用js具有一定的參考學習價值,需要的朋友可以參考下
    2023-06-06
  • javascript中的prototype屬性使用說明(函數功能擴展)

    javascript中的prototype屬性使用說明(函數功能擴展)

    一說到prototype很多人可能第一個想到的是著名的prototype.js框架,當然我們今天說的不是它,而是Javascript中的prototype屬性,一般都被翻譯為“原型”。
    2010-08-08

最新評論