views: 2684 times



header函數被用來在輸出內容給瀏覽器之前送出一個http頭,儘管是很簡單的操作但是還是可能帶來安全問題
Example:
$charset=$_GET[$charset];
@header('Content-Type: text/html; charset='.$charset);
.....
.....
?>
上面的這段代碼有問題沒有呢?在正常情況下是沒有的,但是如果我們瞭解http協議就知道這是有問題的。對於HTTP頭
,也是有分割字符的,回車就是分割字符,也相當於HTTP協議裡的元字符,所以如果我們在$charset裡插入回車的話是
會構造出自己的HTTP頭的,甚至是內容哦!
這樣就可以看到效果,我們是可以偽造輸出的任何內容了,並且可以覆蓋以前提交的HEADER頭內容,但是在php5的時候我並沒有測試成功,譬如如下的代碼中:
如果我們按照上面的格式提交想偽造出文檔的內容就會發現失敗,我們一無所獲了是麼?呵呵,不是的,php會報告錯誤,然後順便把路徑也暴露出來了!
Example:
$charset=$_GET[$charset];
@header('Content-Type: text/html; charset='.$charset);
.....
.....
?>
上面的這段代碼有問題沒有呢?在正常情況下是沒有的,但是如果我們瞭解http協議就知道這是有問題的。對於HTTP頭
,也是有分割字符的,回車就是分割字符,也相當於HTTP協議裡的元字符,所以如果我們在$charset裡插入回車的話是
會構造出自己的HTTP頭的,甚至是內容哦!
這樣就可以看到效果,我們是可以偽造輸出的任何內容了,並且可以覆蓋以前提交的HEADER頭內容,但是在php5的時候我並沒有測試成功,譬如如下的代碼中:
如果我們按照上面的格式提交想偽造出文檔的內容就會發現失敗,我們一無所獲了是麼?呵呵,不是的,php會報告錯誤,然後順便把路徑也暴露出來了!
Bookmarks
HEMiDEMi
Technorati
Del.icio.us
Digg
funP
Yahoo!
Furl
Trackback URL : http://fall-leaf.net/blog/somebody/trackback/17


Leave your greetings here.