2

我在这里谈论(特别是)论坛 - [PHP]code here[/PHP] - style。一些论坛会转义双引号或其他“危险字符”,而另一些则不会。

最好的方法是什么?你们都在用什么?能做到不用担心代码注入吗?

编辑:谁说过要重新发明轮子?

4

4 回答 4

7

当 PHPechoprint文本时,它从不执行它。这只发生在eval. 这意味着如果您这样做:

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

它将传递到页面输出,而不是被解析或执行。

这意味着您需要做的就是转义通常的字符(<>&等),并且您通常应该是安全的。

于 2010-08-20T10:12:21.320 回答
4

不要重新发明轮子。我在你的问题中看到了 BBCode。获取一个降价库并使用它。所以使用这个:http ://daringfireball.net/projects/markdown/

于 2010-08-20T11:12:14.527 回答
3
  1. 无需担心 PHP 代码注入(除非您正在做一些不寻常的事情,例如评估 HTML 模板),但始终担心 JS 代码注入,通常称为 XSS。所有的危险都来自可能的 JS 代码。
  2. 因此,没有对显示在 HTML 页面上的 PHP 代码进行特殊处理。只需将其视为任何其他数据。< >括号通常被转义,原因很明显。
  3. 不要重新发明轮子。PHP为此提供了highlight_string函数
于 2010-08-20T11:24:11.800 回答
0

如果您在某些页面上看到转义引号,那很可能是因为他们的脚本两次转义了它们(例如,magic_quotes 做了一次,然后 mysql_query() 又做了一次)。正确完成数据清理后,您不应在输出中看到转义字符。

于 2010-08-20T13:12:33.697 回答