導航:首頁 > 編程語言 > phpxssclean

phpxssclean

發布時間:2025-03-12 07:40:02

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

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

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

㈡ 如圖,織夢圖集的第三種樣式實現不了,自己改了好多次,都沒成功,圖片都是成一列,想實現多行多列的樣式

以下供你參考:
第一步:如果是圖片集的編輯,那麼找到該頁面的php文件,位於後台dede目錄下的album_edit.php,搜索XSSClean,找到代碼 $arcRow=XSSClean($arcRow);$addRow=XSSClean($addRow); 把該段代碼注釋掉就可以了

第二步:同理軟體等其他內容模型如果出現該問題,解決方法也是一樣的。除此之外,我們會發現雖然文章編輯的時候可以顯示英文逗號了,但後台編輯圖片集列表仍然無法顯示逗號,找到include目錄下的datalistcp.class.php,搜索XSSClean,找到 $rsArray[$i] = $this->XSSClean($arr); 更換成$rsArray[$i] = $arr; 這樣就可以了

㈢ 現在比較好用的前端開發工具有哪些啊

1. node.js + npm, 這個是前端工具的一個平台,沒有他們就沒有以下的工具,建立開發環境,下載開發工具,運行開發工具的利器
2. bower, 庫依賴管理器,類似於npm,但針對瀏覽器JavaScript的依賴管理,減少尋找庫,下載庫和升級庫的煩惱
3.grunt,流程自動化管理工具,將你非編程的開發步驟減到最小,grunt watch+liveReload或者grunt connect,可以使得免除你F5無盡地獄,發布和開發各種無壓力。以下大部分開發工具,都有grunt的相對應的插件,也就是說他們都能利用grunt進行自動化運行
5. 本人用less比較多,因為基本無縫兼容歷史遺留系統中的css,(而Sass語法比較特殊,還沒有專門用過,應該開發新系統的css比較好),一套css預編譯語言,可以把less語法轉成css語法,lessc是less語言編譯器,配合grunt less,編寫大型css文檔毫無壓力。

6.Phantomjs,沒有界面的瀏覽器,用js腳本控制其操作網頁。測試,抓圖,網頁流程自動化利器。配合casperjs的語法簡化功能真強庫後,控制Phantomjs就更加容易了
7. grunt PhotoBox, 利用phantomjs抓圖功能和ImageMagick圖片比較功能,在利用live-reload即時刷新功能,可以讓你開發css的時候,快速對n多個頁面進行觀察,看其前後變化。不過缺點也比較明顯,就是速度慢。但比起手動對比來看,還是非常快的。值得css開發時擁有
8. phantomCSS,這個和grunt photobox類似,都用於css開發的,差別是photobox是全局觀察差別,而這個是單元組件觀察差別,它方便你就抓頁面中某一塊元素然後進行前後比較,更加註重細節上的差異,這個比較合適組件開發時候使用。
9. jshint,幫助你快速定位JavaScript的語法錯誤和潛在的跨瀏覽器兼容性問題。在部署你JS前,用jshint檢查一下是沒錯的 。
10.UglifyJS,壓縮JavaScript代碼,使你的JS代碼可以更加快速的載入。有grunt的插件
11. browserify允許你在瀏覽器裡面使用CMD標准模塊,但本人認為它的另外一個優勢是合並代碼,開發時候可以把代碼模塊化,分成很多很多小文件,然後有調理的放到相對應文件夾下,然後最後合成單一文件。本人曾經利用browserify開發greasemonkey代碼,大大簡化了greasemonkey的開發難度和增強了greasemonkey代碼的質量。browserify有grunt插件,這樣又減少的開發步驟。
12. Karma, google開發的一個單元測試運行器,這個自己本身不是一個單元測試框架,而是配合測試單元框架的一個工具。由於前端瀏覽器眾多,就算你有live-reload這樣自動化工具,但是還是要手動打開各種瀏覽器,手動把你的單元測試在各個瀏覽器都運行一遍。這個工具目的是目的就是讓電腦能自動化打開各種瀏覽器,然後把單元測試在各個瀏覽器中自動運行一遍,讓這個步驟也能自動化了。
13.clean-css (grunt cssmin), 我用的是grunt cssmin,但是grunt cssmin實際上背後使用的是clean-css工具,這個工具就是用來壓縮精簡css的,讓css文件大小更小。

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

跨站點腳本的主要原因是開發人員對用戶的過度信任,未能過濾用戶輸入以阻止惡意活動。這種攻擊的復雜性使得創建有效的XSS過濾器變得困難,但並非不可能。防禦XSS的關鍵在於對輸入數據進行過濾,對輸出數據進行編碼。

需要特別注意編碼和過濾的對象包括URL、HTTP referrer對象、GET和POST參數、Window.location、Document.referrer、document.location、document.URL、未編碼的cookie數據、headers數據、資料庫數據等。

防禦XSS的原則是以應用系統為中心,所有進入應用系統的數據都視為輸入數據,所有從應用系統流出的數據都視為輸出數據。對輸入數據進行過濾,對輸出數據進行編碼。

HTML編碼(HtmlEncode)的作用是將字元轉換為HTMLEntities,對應標准為ISO-8859-1。在PHP中,可以使用htmlentities和htmlspecialchars函數實現HTML編碼。

JavaScript編碼(javascriptEncode)與HTML編碼不同,它需要使用「\」對特殊字元進行轉義。escape()函數可以實現JavaScript編碼,該方法不會對ASCII字母和數字進行編碼,也不會對一些ASCII標點符號進行編碼,其他所有字元都會被轉義序列(十六進制\xHH)替換。使用此編碼函數可以防禦XSS攻擊和一些命令注入。

開源的防禦XSS攻擊的代碼庫包括PHP AntiXSS、xss_clean.php filter、HTML Purifier、xssprotect和XSS HTML Filter。

閱讀全文

與phpxssclean相關的資料

熱點內容
王者榮耀安卓區如何登錄生活區 瀏覽:395
怎麼用命令獲得少年駭客小破表 瀏覽:873
qt可以下載源碼直接使用嗎 瀏覽:911
java程序員面試葵花寶典 瀏覽:977
文檔如何解壓兩次 瀏覽:307
三菱plc編程軟體轉換中文 瀏覽:989
如何設置伺服器端 瀏覽:924
單片機存儲器訪問 瀏覽:622
解壓縮文件夾是什麼 瀏覽:840
android水平垂直居中 瀏覽:740
java命令模式應用 瀏覽:5
如何更改軟體源碼 瀏覽:335
基岩伺服器如何安裝老版本 瀏覽:673
28335flashapi編程 瀏覽:556
星際戰甲安卓版怎麼上飛船 瀏覽:152
地基回彈在壓縮 瀏覽:645
風險凈額演算法 瀏覽:493
程序員資料推薦 瀏覽:845
文件夾選項對話框中的查看是用來設置 瀏覽:939
文件夾名稱導入excel代碼 瀏覽:765