2010-08-20 63 views
2

我在這裏討論(尤其是)論壇 - [PHP]代碼[/ PHP] - 風格。有些論壇可能會使用雙引號或其他「危險字符」,其他論壇則不會。在HTML頁面中顯示普通PHP代碼

什麼是最好的方法?你們在用什麼? 它可以做到沒有代碼注入的恐懼?

編輯:誰說重新發明輪子?

+0

堆棧溢出,特別是允許您使用'<','>'和'"'(以及可能的其他HTML實體)。使用這些,看看他們是否在其他論壇上工作。 – 2010-08-20 12:46:11

回答

7

當PHP echoprint文本,它永遠不會執行它。這隻發生在eval。這意味着如果你這樣做:

echo '<?php ... ?>'; 

它會貫穿到頁面輸出而不被解析或執行。

這意味着你所需要做的就是逃避通常的字符(<,>,&等),你通常應該是安全的。

3
  1. 沒有恐懼PHP代碼注入的(除非你正在做的一樣eval'ing HTML模板一些不尋常的事情)但總是JS代碼注入的恐懼,常常被稱爲XSS。而所有的危險只來自可能的JS代碼。
  2. 因此,PHP代碼沒有特殊的處理方式,顯示在HTML頁面上。只要把它當作任何其他數據。 <>括號通常會被轉義,原因很明顯。
  3. 不要重新發明輪子。 PHP有它的這個
0

highlight_string功能,如果你看到一些網頁上逃脫的報價,這是最有可能的,因爲他們的腳本逃脫他們兩次(例如magic_quotes的做到了一次,然後請求mysql_query()再次)。當數據清理完成後,您不應該在輸出中看到轉義字符。