jQuery 安全模型解釋

2022-09-20 00:18:09 字數 2770 閱讀 8483

但 jquery 在有著諸多優點的同時,它本身也存一些安全問題,而所有的 jquery 安全問題都圍繞著那些被濫用的功能,jqurey 團隊修改了行為來保護開發人員,下面來看看常見的 jquery 安全問題的風險。

$() 與 jquery() 函式的最常見的書寫形式是一樣的,它返回乙個jquery物件:本質上要寫入dom的內容塊。

在大多數情況下,jquery函式將使用選擇器,元素或物件作為引數。

由雜湊(#)表示的選擇器是當前dom中現有html內容的識別符號。

在下面的例子中,我們將使用jquery html()函式來修改#mydivtag選擇器的元素:

注意「我的舊div標籤文字!」 不顯示。jquery在執行時修改dom來替換我們的div元素的文字:

再看看下面的例子:

根據這個例子可以看到,jquery函式類似於getelementbyid()函式。

但是有乙個重要的區別:jquery接受的不僅僅是乙個選擇器id,包括html和指令碼內容。比如:

jquery框架中沒有已知的直接xss漏洞(不包括jquery外掛程式)。但對於不受信任的內容引入到 jquery 時,dom (innerhtml,document.write()等)可能會被修改。

以下是最常見的漏洞**示例:

在下面的頁面中,我們可以直接在瀏覽器dom中引入任意指令碼,甚至繞過chrome的 xss審核

這個xss向量是很常見的,jquery最終改變了選擇器處理特性,為防止這種攻擊。我們阻止以「#」開始的html字串,並從window.location.hash 中開始阻止 xss

模擬xss問題:bug 9521 - $("#

")在以下使用jquery 1.6.1的例子中,模擬了xss錯誤。

這將以#字元開頭,從location.hash屬性中消耗的指令碼:

**成功執行。

在下面的示例中,我們將jquery公升級到1.6.3並執行相同的**:

**不再執行,也就是說 jquery-1.6.3 這個版本可以阻止像剛剛這種:bug 9521 - $("#

") 的問題。

模擬xss問題:

bug 11290 - $("element[attribute='

'")前面提到的jquery接受的不僅僅是乙個選擇器id,還包括html和指令碼內容。jquery可能會錯誤地識別乙個包含 < 作為html片段的選擇器,並嘗試解析並建立相關的元素

如圖:我們引入了 jquery-1.6.3.js 版本,並定義了

,最後執行結果如下:會發現 bug 11290 **被執行了

但當我換成 jquery-1.12.4.js 版本時,bug 11290 **不會執行,而會報錯:

三、jquery

的ajax $ .get()響應處理弱點

jquery ajax $ .get()函式(不要與.get()函式混淆)用於使您可能猜到的ajax get請求。發現在1.12.0之前的版本會自動評估響應內容,如果包含在響應中,則可能會執行指令碼。

此行為可能會促進應用程式中的兩個潛在漏洞。

將跨域請求交給不受信任域的應用程式可能會無意中執行指令碼,否則可能會被視為安全內容。

如果可以將指令碼注入到資料來源中,則可以在xss攻擊中利用對可信api端點的請求。

示例:當我們在頁面上傳送請求:$.get('') 時,攻擊者可能會用 type="text/j**ascript" 來回應我們,並寫上惡意的執行**,如:

模擬 $.get()響應 問題:

jquery issue 2432 - 3rd party $.get() auto executes if content type is text/j**ascript

test.html 頁面:

在 **上惡意彈出乙個層

總結:

像幾乎所有的現代軟體一樣,jquery旨在強大而多功能。

有無數安全和合法的功能,在濫用時可能會導致安全漏洞。

這裡描述的jquery問題都是軟體的結果,該軟體按照設計執行,但是被不正確地執行。

區塊鏈安全解釋

鏈客,有問必答!科技專家 企業家謝爾曼 李 sherman lee 最近表示 區塊鏈本身可能是不可信 不可改變和清廉的,但如果我們忽略其中存在的漏洞,它們就相當於使價值數十億美元鎖在有問題的保險箱裡。區塊鏈因其複雜的數 算而自吹自擂為 廉潔 但在現實中,如果在實際場景中實現,生成的軟體可能會有可能導...

解釋性模型

模型在幫助領域學習方面也具有很大價值。對設計起到推動作用的模型是領域的乙個檢視,但為了學習領域,還可以引入其他檢視,這些檢視只用作傳遞一般領域知識的教學工具。出於此摸底,人們可以使用如軟體設計無關的其他種類模型的那些或文字。使用其他模型的乙個特殊原因是範圍。驅動軟體開發過程的技術模型必須經過嚴格的精...

xgboost輸出模型解釋

xgboost模型輸出的解釋 使用經典的鳶尾花的資料來說明.這是乙個二分類的問題,判斷是不是鳶尾花,這裡只取前100行的資料,並對訓練集和測試集進行了切分。預設有25個樣本作測試集。如下 import xgboost as xgb from sklearn.model selection impor...