2
有沒有辦法將一個流過濾器附加到回顯中,以便任何回顯的數據都通過流過濾器?我的想法是編寫一個輸出轉義過濾器來防止XSS。如何將流過濾器附加到回顯?
我發現這個錯誤報告http://bugs.php.net/bug.php?id=30583但它是從2004年,我不知道現在是否可能。
class strtoupper_filter extends php_user_filter
{
function filter($in, $out, &$consumed, $closing)
{
while ($bucket = stream_bucket_make_writeable($in)) {
$bucket->data = strtoupper($bucket->data);
$consumed += $bucket->datalen;
stream_bucket_append($out, $bucket);
}
return PSFS_PASS_ON;
}
}
stream_filter_register("strtoupper", "strtoupper_filter");
$fp = fopen("php://output", "w");
stream_filter_append($fp, "strtoupper");
echo "echo: testing 123<br>";
print("print: testing 123<br>");
fwrite($fp, "fwrite: testing 123<br>");
好主意,除了那將過濾一切。如果我有一個包含PHP代碼和HTML的PHP腳本,我只想讓PHP輸出的東西通過過濾器,而不是過濾HTML代碼。 – ejunker 2009-06-17 14:20:40