『壹』 跨站腳本攻擊xss的原理是什麼有什麼危害如何防範
xxs攻擊原理是網頁對用戶輸入的字元串過濾不嚴,導致在提交輸入信息的時候瀏覽器執行了黑客嵌入的xxs腳本,致使用戶信息泄露。黑客可將偽裝過的含義腳本語句的鏈接發送給受害者,當受害者點擊鏈接的時候,由於網頁沒有過濾腳本語句,所以瀏覽器執行了腳本語句,而這個腳本語句的作用是將用戶的cookie發送到黑客指定的地址,然後黑客就可以利用受害者的cookie竊取受害者的個人信息等等。這種攻擊對伺服器沒有多大危害,但對用戶危害很大,要防範這種攻擊應該在設計網站的時候對用戶提交的內容進行嚴格的過濾。
『貳』 如何解決跨站腳本攻擊
test
如:<input type="text" id="txtceshi" /><input type="button" onclick="yanzheng()" value="ceshi" />
<script type="text/javascript">
function yanzheng() {
var ce = txtceshi.value;//獲取文本框的值
var ze = /[^0-9]+/; //只能是數字,這里可以在網上找到一些正則替換成你想要的表達式
if (ze.test(ce)) {
alert("數據不合法!");
}
}
</script>
『叄』 XSS跨站腳本攻擊的防禦方法有哪些怎樣把他們分類
用護衛神高級安全防護可以解決
『肆』 跨站腳本攻擊xss和css的區別
傳統防禦技術傳統XSS防禦多採用特徵匹配方式,在所有提交的信息中都進行匹配檢查。對於這種類型的XSS攻擊,採用的模式匹配方法一般會需要對「javascript」這個關鍵字進行檢索,一旦發現提交信息中包含「javascript」,就認定為XSS攻擊
『伍』 Internet Explorer 已對此頁面進行了修改,幫主阻止跨站腳本。 用了360還是那樣
這個錯誤是由於
IE8
的跨站腳本(Cross-site
scripting,
XSS)防護阻止了跨站發送的請求。
點擊
IE8
的「工具」-「Internet
選項」,進入「安全」選項卡,打開「Internet」下方的「自定義級別」,在「安全設置」對話框中找到「啟用
XSS
篩選器」,改為「禁用」即可。
下面參考資料里有詳細設置
『陸』 什麼是同源策略如何解決跨域
此時,客戶端會出現跨域問題,同源策略是指一段腳本只能讀取來自同一來源的窗口和文檔的屬性、協議和埠號的組合.
跨域問題是由於javascript語言安全限制中的同源策略造成的.
簡單來說,這里的同一來源指的是主機名1.什麼是跨域
經常會在頁面上使用ajax請求訪問其他伺服器的數據
『柒』 為什麼要同源策略
一個重要原因就是保護cookie,cookie中存著用戶的登陸憑證,就相當於用戶的賬號密碼。
想像以下場景,你正吃著火鍋唱著歌,突然收到一封郵件說你的銀行賬號存在安全隱患,點擊www.shazilai.com修復。雖然銀行的官方網站是www.anquan.com,但是想到你的全部家當24塊3毛都在卡里,慌亂的你沒有注意這么多點擊鏈接輸入帳號密碼進行登陸。這個網站其實是
<iframe src="www.anquan.com">
在你輸入帳號密碼的時候,如果沒有同源策略,外部已經有腳本獲取你的輸入或者直接通過document.cookie竊取了你的信息並且發送給攻擊者了。
那有了同源策略,是不是我們的網站就萬無一失了呢。並不是,還有很多其他手段威脅到網站安全,比如xss,csrf,clickJacking,本篇文章就簡單闡述一下他們的攻擊手段和基礎攻防(後續添加)。
xss
Cross Site Script,譯為是跨站腳本攻擊;其原本縮寫是 CSS,但為了和層疊樣式表(Cascading Style Sheet)有所區分,因而被迫改名為 XSS。主要分為反射型和儲存型。
反射型
反射型的特點是不持久,它的特點是xss的代碼出現在訪問的鏈接里,作為一部分輸入提交到伺服器,然後伺服器響應後返回瀏覽器,然後瀏覽器執行xss的代碼。
一般攻擊者通過郵件或者其他途徑發送鏈接,用戶點擊之後達到攻擊目的。
儲存型
存儲型和反射型的差別僅在於他的攻擊代碼會存儲到伺服器。這種攻擊的最典型例子就是博客論壇的留言功能,訪問包含這條留言的頁面時,就會觸發攻擊代碼。
比如某個論壇的個人中心裡的個人簡介,我們就可以在裡面嘗試注入代碼進行練習,先來測試可用的標簽
<script><a><p><img><body><button><var><div><iframe><meta><object><marquee><isindex ><input><select>><keygen><frameset><embed><svg><math><video><audio><textarea>
發現只有a標簽存活下來,再來測試屬性
<a href onmouseover onclick >
xss存在的主要原因在於沒有對於用戶的提交內容和介面的返回內容沒有進行嚴格的過濾。
而防止xss的主要手段也是對輸入和url參數進行過濾,對輸出進行編碼,還有就是cookie設置http-only。像常用的vue就有
const decodingMap = {
'<': '<',
'>': '>',
'"': '"',
'&': '&',
'
': '\n',
' ': '\t',
''': "'"
}
來對輸入進行進行過濾,還有網路中輸入<script>alert(1)</script>也會被轉譯成<script>alert(1)<%2Fscript>。
至於http-only,嚴格來說沒有阻止攻擊,只是阻止了攻擊後的cookie劫持。
『捌』 DOM 跨站腳本攻擊問題,怎麼解決
跨站腳本攻擊(Cross Site Scripting)是指攻擊者利用網站程序對用戶輸入過濾不足,輸入可以顯示在頁面上對其他用戶造成影響的HTML代碼,從而盜取用戶資料、利用用戶身份進行某種動作或者對訪問者進行病毒侵害的一種攻擊方式。為了與層疊樣式表(Cascading Style Sheets)的縮寫CSS區分開,跨站腳本攻擊通常簡寫為XSS。
下面這個頁面的主要作用是獲取用戶輸入的參數作為用戶名,並在頁面中顯示「歡迎您,XXX」的形式,具體代碼如下:
<?php
$username = $_GET["name"];
echo "<p>歡迎您, ".$username."!</p>";
『玖』 跨站腳本攻擊是什麼意思
XSS,跨站腳本攻擊,Cross-Site
Scripting,為了和前端的CSS避免重名,簡稱為XSS,是指通過技術手段,向正常用戶請求的HTML頁面中插入惡意腳本,執行。
這種攻擊主要是用於信息竊取和破壞等目的。在防範XSS上,主要就是通過對用戶輸入的數據做過濾或者或者轉義,可以使用框架提供的工具類HTML
Util,另外前端在瀏覽器展示數據的時候,要使用安全的API展示數據。比如使用inner text而不是inner HTML。
『拾』 如何防止跨站點腳本攻擊
你好~
XSS漏洞產生的原因:
跨站點腳本的主要原因是程序猿對用戶的信任。開發人員輕松地認為用戶永遠不會試圖執行什麼出格的事情,所以他們創建應用程序,卻沒有使用任何額外的代碼來過濾用戶輸入以阻止任何惡意活動。另一個原因是,這種攻擊有許多變體,用製造出一種行之有效的XSS過濾器是一件比較困難的事情。
但是這只是相對的,對用戶輸入數據的」編碼」和」過濾」在任何時候都是很重要的,我們必須採取一些針對性的手段對其進行防禦。
如何創造一個良好的XSS過濾器來阻止大多數XSS攻擊代碼
1 .需要重點」編碼」和」過濾」的對象
The URL
HTTP referrer objects
GET parameters from a form
POST parameters from a form
Window.location
Document.referrer
document.location
document.URL
document.URLUnencoded
cookie data
headers data
database data
防禦XSS有一個原則:
以當前的應用系統為中心,所有的進入應用系統的數據都看成是輸入數據(包括從FORM表單或者從資料庫獲取到的數據),所有從當前應用系統流出的數據都看作是輸出(包括輸出到用戶瀏覽器或向資料庫寫入數據)
對輸入的數據進行」過濾」,對輸出數據進行」編碼」。這里的」編碼」也要注意,必須針對數據具體的上下文語境進行針對性的編碼。例如數據是輸出到HTML中的那就要進行HtmlEncode,如果數據是輸出到javascript代碼中進行拼接的,那就要進行javascriptEncode。
如果不搞清楚數據具體輸出的語境,就有可能因為HtmlParser()和javascriptParser()兩種解析引擎的執行先後問題導致看似嚴密的」編碼」形同虛設。
2. HtmlEncode HTML編碼
它的作用是將字元轉換成HTMLEntities,對應的標準是ISO-8859-1
為了對抗XSS,在HtmlEncode中要求至少轉換以下字元:
& --> &
< --> <
> --> >
" --> "
' --> '
/ --> /
在PHP中:
htmlentities
http://www.w3school.com.cn/php/func_string_htmlentities.asp
htmlspecialchars
http://www.w3school.com.cn/php/func_string_htmlspecialchars.asp
3. javascriptEncode javascript」編碼」
javascriptEncode與HtmlEncode的編碼方法不同,HtmlEncode是去編碼,而javascriptEncode更多的像轉義,它需要使用」\」對特殊字元進行轉義。從原理上來講,這都符合編碼函數的一個大原則: 將數據和代碼區分開,因為對於HTML Tag來說,我們對其進行」可視化(轉換成可以見字元)」的編碼可以將數據和HTML的界限分開。而對於javascript來說,我們除了要進行編碼之外,還需要對特殊字元進行轉義,這樣攻擊輸入的用於」閉合」的特殊字元就無法發揮作用,從而避免XSS攻擊,除此之外,在對抗XSS時,還要求輸出的變數必須在引號內部,以避免造成安全問題。
escape()
http://www.w3school.com.cn/js/jsref_escape.asp
該方法不會對 ASCII 字母和數字進行編碼,也不會對下面這些 ASCII 標點符號進行編碼: * @ – _ + . / 。其他所有的字元都會被轉義序列(十六進制\xHH)替換。
利用這個編碼函數,不僅能防禦XSS攻擊,還可以防禦一些command注入。
一些開源的防禦XSS攻擊的代碼庫:
PHP AntiXSS
這是一個不錯的PHP庫,可以幫助開發人員增加一層保護,防止跨站腳本漏洞。
https://code.google.com/p/php-antixss/
xss_clean.php filter
https://gist.github.com/mbijon/1098477
HTML Purifier
http://htmlpurifier.org/
xssprotect
https://code.google.com/p/xssprotect/
XSS HTML Filter
http://finn-no.github.io/xss-html-filter/
原文地址:http://resources.infosecinstitute.com/how-to-prevent-cross-site-scripting-attacks/
希望可以幫助到你~望採納哦~謝謝~