導航:首頁 > 凈水問答 > xssfilter過濾器

xssfilter過濾器

發布時間:2022-02-16 19:52:46

㈠ 如何防止xss攻擊,需要過濾什麼

XSS攻擊通常是指黑客通過"HTML注入"篡改了網頁,插入了惡意的腳本,從而在用戶瀏覽網頁時,控制用戶瀏覽器的一種攻擊。

一、HttpOnly防止劫取Cookie

HttpOnly最早由微軟提出,至今已經成為一個標准。瀏覽器將禁止頁面的Javascript訪問帶有HttpOnly屬性的Cookie。目前主流瀏覽器都支持,HttpOnly解決是XSS後的Cookie支持攻擊。

我們來看下網路有沒有使用。

未登錄時的Cookie信息
可以看到,所有Cookie都沒有設置HttpOnly,現在我登錄下

發現在個叫BDUSS的Cookie設置了HttpOnly。可以猜測此Cookie用於認證。

下面我用PHP來實現下:

<?php
header("Set-Cookie: cookie1=test1;");
header("Set-Cookie: cookie2=test2;httponly",false);

setcookie('cookie3','test3',NULL,NULL,NULL,NULL,false);
setcookie('cookie4','test4',NULL,NULL,NULL,NULL,true);
?>
<script>
alert(document.cookie);
</script>
js只能讀到沒有HttpOnly標識的Cookie

二、輸入檢查

輸入檢查一般是檢查用戶輸入的數據中是否包含一些特殊字元,如<、>、'、"等,如果發現存在特殊字元,則將這些字元過濾或者編碼。

例如網站注冊經常用戶名只允許字母和數字的組合,或者郵箱電話,我們會在前端用js進行檢查,但在伺服器端代碼必須再次檢查一次,因為客戶端的檢查很容易繞過。

網上有許多開源的「XSS Filter」的實現,但是它們應該選擇性的使用,因為它們對特殊字元的過濾可能並非數據的本意。比如一款php的lib_filter類:

$filter = new lib_filter();
echo $filter->go('1+1>1');
它輸出的是1,這大大歪曲了數據的語義,因此什麼情況應該對哪些字元進行過濾應該適情況而定。

三、輸出檢查

大多人都知道輸入需要做檢查,但卻忽略了輸出檢查。

1、在HTML標簽中輸出

如代碼:

<?php
$a = "<script>alert(1);</script>";
$b = "<img src=# onerror=alert(2) />";
?>
<div><?=$b?></div>
<a href="#"><?=$a?></a>
這樣客戶端受到xss攻擊,解決方法就是對變數使用htmlEncode,php中的函數是htmlentities

<?php
$a = "<script>alert(1);</script>";
$b = "<img src=# onerror=alert(2) />";
?>
<div><?=htmlentities($b)?></div>
<a href="#"><?=htmlentities($a)?></a>

2、在HTML屬性中輸出

<div id="div" name ="$var"></div>
這種情況防禦也是使用htmlEncode

在owasp-php中實現:

$immune_htmlattr = array(',', '.', '-', '_');
$this->htmlEntityCodec->encode($this->immune_htmlattr, "\"><script>123123;</script><\"");

3、在<script>標簽中輸出

如代碼:
<?php
$c = "1;alert(3)";
?>
<script type="text/javascript">
var c = <?=$c?>;
</script>
這樣xss又生效了。首先js變數輸出一定要在引號內,但是如果我$c = "\"abc;alert(123);//",你會發現放引號中都沒用,自帶的函數都不能很好的滿足。這時只能使用一個更加嚴格的JavascriptEncode函數來保證安全——除數字、字母外的所有字元,都使用十六進制"\xHH"的方式進行編碼。這里我採用開源的owasp-php方法來實現
$immune = array("");
echo $this->javascriptCodec->encode($immune, "\"abc;alert(123);//");
最後輸出\x22abc\x3Balert\x28123\x29\x3B\x2F\x2F

4、在事件中輸出

<a href="#" onclick="funcA('$var')" >test</a>
可能攻擊方法
<a href="#" onclick="funcA('');alter(/xss/;//')">test</a>
這個其實就是寫在<script>中,所以跟3防禦相同

5、在css中輸出

在owasp-php中實現:

$immune = array("");
$this->cssCodec->encode($immune, 'background:expression(window.x?0:(alert(/XSS/),window.x=1));');
6、在地址中輸出

先確保變數是否是"http"開頭,然後再使用js的encodeURI或encodeURIComponent方法。

在owasp-php中實現:

$instance = ESAPI::getEncoder();
$instance->encodeForURL(『url』);
四、處理富文體

就像我寫這篇博客,我幾乎可以隨意輸入任意字元,插入圖片,插入代碼,還可以設置樣式。這個時要做的就是設置好白名單,嚴格控制標簽。能自定義 css件麻煩事,因此最好使用成熟的開源框架來檢查。php可以使用htmlpurify

五、防禦DOM Based XSS

DOM Based XSS是從javascript中輸出數據到HTML頁面里。

<script>
var x = "$var";
document.write("<a href='"+x+"'>test</a>");
</script>
按照三中輸出檢查用到的防禦方法,在x賦值時進行編碼,但是當document.write輸出數據到HTML時,瀏覽器重新渲染了頁面,會將x進行解碼,因此這么一來,相當於沒有編碼,而產生xss。
防禦方法:首先,還是應該做輸出防禦編碼的,但後面如果是輸出到事件或腳本,則要再做一次javascriptEncode編碼,如果是輸出到HTML內容或屬性,則要做一次HTMLEncode。

會觸發DOM Based XSS的地方有很多:

document.write()、document.writeln()、xxx.innerHTML=、xxx.outerHTML=、innerHTML.replace、document.attachEvent()、window.attachEvent()、document.location.replace()、document.location.assign()

㈡ 在input的標簽里怎麼繞過xss雙引號的編碼過濾

哥們,要是讓你繞過去了,黑客也就繞過去了。不要想著從前台騙過過濾器,如果系統設置非常嚴格,所有從前台設置的輸入信息都會被xss過濾器過濾,一般是把特殊字元刪除或者轉譯(比如大於號小於號雙引號斜杠等),避免用戶通過非法手段存儲注入代碼,但是一般的web系統,都不會在顯示的時候重新轉碼,所以,如果你可以直接訪問資料庫,則可以講特殊字元的代碼直接寫到資料庫里,頁面就會直接顯示了。

㈢ 關於xss過濾器form提交帶附件問題

是不是XSS防禦

如果是XSS防禦 ,我網路搜索了幾條;

解決提交表單時Xss攻擊的問題

㈣ 瀏覽器的Xss過濾器機制是什麼,為什麼有些反射型Xss不會觸發過濾器

首先要說明的是 它是webkit的一個模塊,而非chrome ,所以Safari和360安全瀏覽器極速模式等webkit內核的瀏覽器都有專XSS過濾功能.
過濾方式:
通過模糊匹屬配 輸入參數(GET query| POST form data| Location fragment ) 與 dom樹,如果匹配中的數據中包含跨站腳本則不在輸出到上下文DOM樹中.另外,匹配的規則跟CSP沒有什麼關系,最多是有參考,CSP這種規范類的東西更新速度太慢跟不上現實問題的步伐.

關閉模式:
因為它有可能影響到業務,所以瀏覽器提供了關閉它的HTTP響應頭.
X-XSS-Protection: 0

繞過方式:
因為專門做這方面的原因所以對繞過也有所了解,目前我發布過的一個bypass 0day還可以繼續使用.
<svg><script xlink:href=data:,alert(1)></script></svg>

㈤ net.sf.xsshtmlfilter.htmlfilter是哪一個包

開源代碼NHtmlFilter 幫你過濾Html危險腳本 防止XSS攻擊
有示例代碼,專有rar壓縮屬文件:http://www.oschina.net/code/snippet_222150_9776

㈥ 如何繞過 瀏覽器xss filter

反射xss利用方法,繞過IE XSS Filter

假設 1.php頁面代碼如下:

echo $_GET['str'];
使用IE瀏覽器訪問該頁面

1.php?str=<xss code>
由於xss filter渲染 導致XSS不成功

接下來我們要這么繞過呢?

如果該站點 可以發帖、友情鏈接等等 只要能發鏈接地址其實不只發鏈接 嘿嘿。

由於IE XSS FILTER 只是檢測 referer 是否來自本源,如果來自本源 則 Ie XSS FILTER則不生效。你現在明白了吧

在javascript: date: 等協議無效的情況下:

<a href="http://localhost/1.php?str=<xss code>">求友情鏈接</a>
IE用戶點擊即可中招(其他部分瀏覽器也中招)

㈦ xss filter evasion cheat sheet 什麼意思

去年9月轉了一篇文章,取名為《77怒漢,77個XSS用例總結》,現在已經被我刪掉了,是一些XSS用例的總結,一開始覺得是從某知名安全站轉的,應該沒什麼問題,中間也有網友指出過其中的一些錯誤。後來找到了文章的出處,就是OWASP的XSS Filter Evasion Cheat Sheet,今天想自己看一看XSS有關BYPASS過濾的內容,越看越不靠譜,特別是一對照了英文原版的時候,我發現那篇翻過來的東西就是篇垃圾啊,不僅翻譯有問題啊,尼瑪很多地方代碼都是一樣的啊。


在這里要為轉載了一篇垃圾文章道歉,特別那篇文章已經被好多採集站和黑客站轉過去傳播了,在這里一並向那些被誤導的讀者道歉。由於還沒出中文版的XSS Filter Evasion Cheat Sheet,所以大家還是努力學英文吧,最近對翻譯的東西很反感,很多東西吧,翻過來水平不行,味道完全變了,然後又不加原文出處,典型的天朝山寨作風。


不過我發現XSS Filter Evasion Cheat Sheet裡面還是有些地方需要改的,比如在這一條:

㈧ 為什麼firefox瀏覽器一直沒有xss filter

每種瀏覽器採用的技術不一樣,所以火狐沒有xss filter也正常,火狐有自己的技術和優勢,很多開發者就是喜歡火狐的開發者工具。

㈨ 如何關閉跨站點腳本 (XSS) 篩選器

這個錯誤是由於 IE8 的跨站腳本(Cross-site scripting, XSS)防護阻止了跨站發送的請求。
點擊 IE8 的「工具」-「Internet 選項」,進入「安全」選項卡,打開「Internet」下方的「自定義級別」,在「安全設置」對話框中找到「啟用 XSS 篩選器」,改為「禁用」即可。

㈩ eclipse啟動tomcat時,報Exception starting filter xssFilter,求大神幫忙

說明你的tomcat已經啟動了(一般都是默認開機啟動的,除非你在系統服務裡面設為手動啟動),不用在eclipse裡面再啟動了,如果要在eclipse裡面啟動,要先停止,再啟動,不過這是多此一舉的!

閱讀全文

與xssfilter過濾器相關的資料

熱點內容
多介質過濾器生產需要原料 瀏覽:288
聊城提升器采購 瀏覽:800
美的濾芯在水泵裡面如何取出來 瀏覽:658
九江凈水器怎麼選 瀏覽:421
蒸餾發測氮含量 瀏覽:752
怎麼清洗水龍頭的水垢 瀏覽:707
污水處理三方合同模板 瀏覽:754
透明光敏樹脂1克多少錢 瀏覽:994
污水處理站的解決方案怎麼寫 瀏覽:520
廢水B0D是什麼 瀏覽:917
大學實驗室廢水處理方案 瀏覽:208
小佩飲水機怎麼樣 瀏覽:227
雙組份熱塑性丙烯酸樹脂 瀏覽:576
史密斯熱水器ro膜 瀏覽:152
鎂法脫硫廢水處理難點 瀏覽:412
純凈水桶不能用什麼 瀏覽:736
污水排放檢測記錄怎麼填 瀏覽:883
沁園05B純水機濾芯是什麼樣的 瀏覽:479
跨站型xss過濾 瀏覽:569
網上買的飲水機為什麼都這么小 瀏覽:382