0
CodeIgniter爲XSS過濾提供了幾個方便的API。使用CodeIgniter的XSS過濾是否避免輸出時需要轉義?
- config.php中的'global_xss_filtering'。
- 'xss_clean'規則爲單個字段,當使用表單驗證庫時。
如果使用此功能,是否避免在輸出時需要轉義字段?
CodeIgniter爲XSS過濾提供了幾個方便的API。使用CodeIgniter的XSS過濾是否避免輸出時需要轉義?
如果使用此功能,是否避免在輸出時需要轉義字段?
有些情況下xss_clean不會保護你。 Issue 470包括這個例子:
public function index()
{
$name = $this->security->xss_clean('hover me" onmouseover=alert("XSS2") "');
echo '</div>Name:<input value="'.$name.'">';
echo '</body></html>';
}
從開發商的答覆是,這是由設計,並表明$name
應該使用form_prep()
已經越獄。
如果您使用set_value('field-name', 'default')
爲了在表單驗證失敗時保留用戶輸入),那將...嘗試爲您調用form_prep()。需要注意的是,如果您沒有加載表單驗證庫,它將不會轉義「默認」參數。 (Issue 1781,固定在3.0-dev中)。
如果你的是運行當前的3.0-dev,那麼form_prep()
是更具體的關於它逃逸哪些字符。它應該避免使用XSS;在某些情況下它只是意想不到的結果。例如。如果您嘗試在3.0-dev中輸入文字「&
」,然後表單驗證失敗,則字段值將更改爲&
,而不會發出警告。這種改變是爲了解決雙轉義問題(issue 1953)。