在 HTML 页面中显示纯 PHP 代码

发布于 2024-09-15 05:32:39 字数 161 浏览 7 评论 0原文

我在这里谈论(特别是)论坛 - [PHP]代码[/PHP] - 风格。有些论坛会转义双引号或其他“危险字符”,而其他论坛则不会。

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

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

And I'm talking (especially) forums here - [PHP]code here[/PHP] - style. Some forums escape double quotes or other "dangerous characters" and others don't.

What is the best method? What are you guys using?
Can it be done without the fear of code injection?

Edit: Who said anything about reinventing the wheel?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

深者入戏 2024-09-22 05:32:39

当 PHP echoprint 文本时,它永远不会执行它。只有 eval 才会发生这种情况。这意味着如果您这样做:

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

它将继续到页面输出并且不会被解析或执行。

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

When PHP echo or print text, it never executes it. That only happens with eval. This means that if you did this:

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

it would carry through to the page output and not be parsed or executed.

This means that all you need to do is escape the usual characters (<, >, &, etc.) and you should generally be safe.

挽清梦 2024-09-22 05:32:39

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

Don't reinvent the wheel. I see BBCode in your question. Grab a markdown library and use it instead. SO uses this: http://daringfireball.net/projects/markdown/

说好的呢 2024-09-22 05:32:39
  1. 不用担心 PHP 代码注入(除非您正在做一些不寻常的事情,例如评估 HTML 模板),但总是担心 JS 代码注入,通常称为 XSS。所有危险仅来自可能的 JS 代码。
  2. 因此,对于 HTML 页面上显示的 PHP 代码没有特殊处理。只需将其视为任何其他数据即可。 < > 括号通常会被转义,原因显而易见。
  3. 不要重新发明轮子。 PHP 为此提供了 highlight_string 函数
  1. There is no fear of PHP code injection (unless you are doing some unusual things like eval'ing HTML templates) but always a fear of JS code injection, often called XSS. And all danger coming only from possible JS code.
  2. Thus, there is no special treatment for the PHP code, shown on a HTML page. Just treat it as any other data. < > brackets usually being escaped, for obvious reason.
  3. Don't reinvent the wheel. PHP has it's highlight_string function for this
笨死的猪 2024-09-22 05:32:39

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

If you see escaped quotes on some page, that's most likely because their script escaped them twice (for example magic_quotes did it once, then mysql_query() again). When data sanitisation is done properly, you should not see escape characters in output.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文