簡體   English   中英

Codeigniter中的XSS過濾

[英]XSS Filtering in codeigniter

我只想問一下,因為我是Codeginiter中的新手,並且基於XSS Filtering上顯示的文檔,它表示:

By default it does not run globally since it requires a bit of processing overhead, 
and since you may not need it in all cases.

這實際上是什么意思? 因為我通過config.php設置了xss全局過濾,所以:

$config['global_xss_filtering'] = TRUE;

該文檔對執行上述操作(而不是執行此操作)的負面影響是什么?

$this->security->xss_clean()

xss_clean()很廣泛,而且很愚蠢。 此功能的90%不能阻止xss。 例如尋找單詞alert而不是document.cookie 沒有黑客會在他們的漏洞利用中使用alert ,他們會使用xss劫持cookie或讀取CSRF令牌來制作XHR。

但是,使用它運行htmlentities()htmlspecialchars()只是多余而已。 xss_clean()解決了該問題,而htmlentities($text, ENT_COMPAT, 'UTF-8')失敗的情況如下:

<?php
print "<img src='$var'>";
?>

一個簡單的poc是:

 http://localhost/xss.php?var=http://domain/some_image.gif'%20onload=alert(/xss/)

這會將onload=事件處理程序添加到image標簽。 這種形式的xss的stoppipng方法是htmlspecialchars($var,ENT_QUOTES); 或者在這種情況下, xss_clean()也可以防止這種情況。

但是,引用xss_clean()文檔:

當然,沒有什么是百分百的萬無一失的,但是我無法使任何東西通過過濾器。

話雖如此,XSS是一個output problem 而不是一個input problem 例如,此函數不能考慮變量已經在<script>標記或事件處理程序中。 它還不會停止基於DOM的XSS。 您需要考慮如何使用數據才能使用最佳功能。 過濾輸入中的所有數據是一個壞習慣 它不僅不安全,而且還會破壞數據,從而使比較變得困難。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM