我在這裏討論(尤其是)論壇 - [PHP]代碼[/ PHP] - 風格。有些論壇可能會使用雙引號或其他「危險字符」,其他論壇則不會。在HTML頁面中顯示普通PHP代碼
什麼是最好的方法?你們在用什麼? 它可以做到沒有代碼注入的恐懼?
編輯:誰說重新發明輪子?
我在這裏討論(尤其是)論壇 - [PHP]代碼[/ PHP] - 風格。有些論壇可能會使用雙引號或其他「危險字符」,其他論壇則不會。在HTML頁面中顯示普通PHP代碼
什麼是最好的方法?你們在用什麼? 它可以做到沒有代碼注入的恐懼?
編輯:誰說重新發明輪子?
當PHP echo
或print
文本,它永遠不會執行它。這隻發生在eval
。這意味着如果你這樣做:
echo '<?php ... ?>';
它會貫穿到頁面輸出而不被解析或執行。
這意味着你所需要做的就是逃避通常的字符(<
,>
,&
等),你通常應該是安全的。
不要重新發明輪子。我在你的問題中看到BBCode。抓住一個降價庫,並使用它。 SO使用此:http://daringfireball.net/projects/markdown/
<
>
括號通常會被轉義,原因很明顯。highlight_string功能,如果你看到一些網頁上逃脫的報價,這是最有可能的,因爲他們的腳本逃脫他們兩次(例如magic_quotes的做到了一次,然後請求mysql_query()再次)。當數據清理完成後,您不應該在輸出中看到轉義字符。
堆棧溢出,特別是允許您使用'<','>'和'"'(以及可能的其他HTML實體)。使用這些,看看他們是否在其他論壇上工作。 – 2010-08-20 12:46:11