2010-08-20 161 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()再次)。当数据清理完成后,您不应该在输出中看到转义字符。