我在这里讨论(尤其是)论坛 - [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