jQuery使用中可能被XSS攻擊的一些危險環(huán)節(jié)提醒
來源:易賢網(wǎng) 閱讀:1241 次 日期:2016-06-23 15:52:48
溫馨提示:易賢網(wǎng)小編為您整理了“jQuery使用中可能被XSS攻擊的一些危險環(huán)節(jié)提醒”,方便廣大網(wǎng)友查閱!

XSS指的是跨站腳本攻擊,比如人們常說的向$傳入字符串或者字符串轉換可執(zhí)行函數(shù)等一些安全方面值得注意的細節(jié),下面就為大家整理了jQuery使用中可能被XSS攻擊的一些危險環(huán)節(jié)提醒

$

我們經(jīng)常使用向 $ 內傳入一個字符串的方式來選擇或生成 DOM 元素,但如果這個字符串是來自用戶輸入的話,那么這種方式就是有風險的。

先看一個 DEMO:http://jsbin.com/duwuzonife/1/edit?html,js,output

$("<img src='' onerror='alert();'>");

當用戶輸入的字符串是像這樣的時,雖然這個 <img> 元素不會馬上被插入到網(wǎng)頁的 DOM 中,但這個 DOM 元素已經(jīng)被創(chuàng)建了,并且暫存在內存里。而對于 <img> 元素,只要設置了它的 src 屬性,瀏覽器就會馬上請求 src 屬性所指向的資源。我們也可以利用這個特性做圖片的預加載。在上面的示例代碼中,創(chuàng)建元素的同時,也設置了它的屬性,包括 src 屬性和 onerror 事件監(jiān)聽器,所以瀏覽器會馬上請求圖片資源,顯然請求不到,隨機觸發(fā) onerror 的回調函數(shù),也就執(zhí)行了 JavaScript 代碼。

推薦閱讀 $ 的官方文檔:http://api.jquery.com/jQuery/

類似的其他方法

.after()

.append()

.appendTo()

.before()

.html()

.insertAfter()

.insertBefore()

.prepend()

.prependTo()

.replaceAll()

.replaceWith()

.unwrap()

.wrap()

.wrapAll()

.wrapInner()

.prepend()

以上這些方法不僅創(chuàng)建 DOM 元素,并且會馬上插入到頁面的 DOM 樹中。如果使用 <script> 標簽插入了內聯(lián) JS 會立即執(zhí)行。

不安全的輸入來源

document.URL *

document.location.pathname *

document.location.href *

document.location.search *

document.location.hash

document.referrer *

window.name

document.cookie

document 的大多數(shù)屬性都可以通過全局的 window 對象訪問到。加 * 的屬性返回的時編碼 (urlencode) 后的字符串,需要解碼才可能造成威脅。

不安全的操作

把可以被用戶編輯的字符串,用在以下場景中,都是有隱患的??傮w來說,任何把字符串作為可執(zhí)行的代碼的操作,都是不安全的。

1.通過字符串創(chuàng)建函數(shù)

(1)eval

(2)new Function

(3)setTimeout/setInterval

2.跳轉頁面

location.replace/location.assign

修改 <script> 標簽的 src 屬性

修改事件監(jiān)聽器

總結

如果發(fā)生在用 jQuery 時被 DOM-XSS 攻擊的情況,大多是因為忽視了兩個東西:

1. 在給$傳參數(shù)時,對參數(shù)來源的把控。

2. 用戶的輸入途徑不只有表單,還有地址欄,還可以通過開發(fā)者工具直接修改 DOM ,或者直接在控制臺執(zhí)行 JS 代碼。

更多信息請查看網(wǎng)絡編程

2025國考·省考課程試聽報名

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權所有:易賢網(wǎng)