導航:首頁 > 源碼編譯 > xss攻擊需要編譯的符號

xss攻擊需要編譯的符號

發布時間:2024-09-12 19:42:40

❶ XSS攻擊的定義,類型以及防禦方法

XXS攻擊全稱跨站腳本攻擊,是一種在Web應用中的計算機安全漏洞,它允許惡意Web用戶將代碼植入到提供給其他使用的頁面中。

XSS攻擊有哪幾種類型?下面就由銳速雲的小編為大家介紹一下

經常見到XSS攻擊有三種:反射XSS攻擊、DOM-based型XSS攻擊以及儲存型XSS攻擊。

[if !supportLists]1、[endif]反射型XSS攻擊

反射性XSS一般是攻擊者通過特定手法(如電子郵件),誘使用戶去訪問一個包含惡意代碼的URL,當受害者點擊這些專門設計鏈接的時候,惡意代碼會直接在受害主機上的瀏覽器上執行,反射型XSS通常出現在網站搜索欄,用戶登入口等地方,常用來竊取客戶端或進行釣魚欺騙。

[if !supportLists]2、[endif]存儲型XSS攻擊

存儲型XSS攻擊也叫持久型XSS,主要將XSS代碼提交儲存在伺服器端(資料庫,內存,文件系統等)下次請求目標頁面時不用在提交XSS代碼。當目標用戶訪問該頁面獲取數據時,XSS代碼會從伺服器解析之後載入出來,返回到瀏覽器做正常的HTML和JS解析執行,XSS攻擊就發生了。儲存型XSS一般出現在網站留言,評論,博客日誌等交互處,惡意腳本儲存到客戶端或者服務端的資料庫中。

[if !supportLists]3、[endif]DOM-based型XSS攻擊

DOM-based型XSS攻擊它是基於DOM的XSS攻擊是指通過惡意腳本修改頁面的DOM結構,是純粹發生在客戶端的攻擊。DOM型XSS攻擊中,取出和執行惡意代碼由瀏覽器端完成,屬於前端javaScript自身的安全漏洞。

如何防禦XSS攻擊?

[if !supportLists]1、[endif]對輸入內容的特定字元進行編碼,列如表示html標記<>等符號。

[if !supportLists]2、[endif]對重要的cookie設置httpOnly,防止客戶端通過document。cookie讀取cookie,此HTTP開頭由服務端設置。

[if !supportLists]3、[endif]將不可信的輸出URT參數之前,進行URLEncode操作,而對於從URL參數中獲取值一定要進行格式檢查

[if !supportLists]4、[endif]不要使用Eval來解析並運行不確定的數據或代碼,對於JSON解析請使用JSON。Parse()方法

[if !supportLists]5、[endif]後端介面也應該要做到關鍵字元過濾的問題。

❷ 如何防止跨站點腳本攻擊

你好~
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/

希望可以幫助到你~望採納哦~謝謝~

閱讀全文

與xss攻擊需要編譯的符號相關的資料

熱點內容
java與sqlserver資料庫連接 瀏覽:21
鐵路解壓視頻全過程 瀏覽:442
主備核心交換機如何連接伺服器 瀏覽:704
白金卡哪個app最靠譜 瀏覽:666
本田汽車空調壓縮機保險絲 瀏覽:155
康佳led47r5500pdf通病 瀏覽:821
cad圓相切命令 瀏覽:69
bmp文件夾打開 瀏覽:502
u盤裝系統文件下載到哪個文件夾 瀏覽:21
es系統封裝教程程序員大本營 瀏覽:523
程序員聚餐喝什麼酒好 瀏覽:608
編譯程序生成安裝文件 瀏覽:955
linux查看usb設備 瀏覽:284
安卓怎麼禁止app充值 瀏覽:559
動盪對加密貨幣的影響 瀏覽:358
國家反詐app哪裡看注冊時間 瀏覽:563
打孔式文件夾怎麼裝視頻 瀏覽:29
php怎麼學比較好 瀏覽:381
python中關於函數調用 瀏覽:362
debian系統命令行如何排序 瀏覽:407