php xssclean,php – Codeigniter xss_clean困境
基本上XSS是一個OUTPUT問題 – 但Codeigniter將其作為INPUT問題處理.
Can someone elaborate how it’s bad…
問題是xss_clean會改變你的INPUT – 這意味著在某些情況下(比如你所描述的密碼問題)輸入不是預期的.
…or at least give 1 most probable scenario where it can be exploited?
它只查找某些關鍵詞,例如“javascript”. xss_clean沒有檢測到其他腳本操作,而且它不會保護您免受任何“新”攻擊.
The one thing I don’t like is javascript: and such will be converted to [removed]. Can I extend the CI’s security core $_never_allowed_str arrays so that the never allowed strings return empty rather than [removed]
你可以做到這一點 – 但你只是把一個綁帶放在一個糟糕的解決方案上.
I’ve been reading about pros and cons about whether to escape on input/output with majority says that we should escape on output only.
這是正確的答案 – 逃避所有輸出,并且你有真正的XSS保護,而不改變輸入.
我個人在Codeigniter中對XSS保護的方法是我不對輸入進行任何XSS清理.我在_output上運行一個鉤子 – 它清除我的所有“view_data”(這是我用來向視圖發送數據的變量).
如果我不想通過在我的控制器中插入“$view_data [‘clean_output’] = false”來運行XSS Clean,我可以切換:鉤子檢查:
if (( ! isset($this->CI->view_data['clean_output'])) || ($this->CI->view_data['clean_output']))
{
// Apply to all in the list
$this->CI->view_data = array_map("htmlspecialchars", $this->CI->view_data);
}
這為我的整個網站提供了自動和完整的XSS保護 – 只需幾行代碼而且沒有性能損失.
總結
以上是生活随笔為你收集整理的php xssclean,php – Codeigniter xss_clean困境的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java+long是什么_Java中lo
- 下一篇: 爱奇艺首页底部导航按钮android,仿