【问题标题】:Can I hide the path in php error using .htaccess我可以使用 .htaccess 隐藏 php 错误中的路径吗
【发布时间】:2011-08-02 02:35:19
【问题描述】:

我可以使用 .htaccess 隐藏 php 错误中的路径

例子:

Notice: Undefined variable: hello in C:\xampp\htdocs\mysite\index.php on line 3

我想使用 .htaccess 隐藏路径或打印一些内容让我知道是否有错误而不打印页面路径:

Notice: Undefined variable: hello on line 3

Notice: Undefined variable: hello

There is error in your page

编辑:

我把这行放在我的 .htaccess 中 但我无法访问我的网站。出现错误“内部服务器错误” 我该如何解决这个问题

# supress php errors
php_flag display_startup_errors off
php_flag display_errors off
php_flag html_errors off
php_value docref_root 0
php_value docref_ext 0

【问题讨论】:

  • 您根本不应该向访问者显示此类错误消息!它们仅适用于开发人员。
  • 上下文是什么?您根本不应该从 PHP 解释器输出错误/警告。如果有这样的消息,你必须修复你的脚本。
  • 您是否将 PHP 作为模块运行并且您是否拥有“AllowOverride Options”或“AllowOverride All”权限?否则不能使用php_flag and php_value
  • @Gumbo 他做到了。否则他不会看到这样的错误。
  • 我无法理解你的问题,因为我在这方面没有太多经验:)

标签: php .htaccess path


【解决方案1】:

PHP 的错误消息并非针对用户,而是仅针对开发人员。

所以对于生产环境,你应该禁用display_errors以避免信息泄露:

注意:[display_errors] 是一项支持您的开发的功能,切勿在生产系统(例如连接到 Internet 的系统)上使用。

相反,您应该向您的用户显示一般错误消息,这些错误消息不会揭示任何内部结构,只记录错误消息(请参阅log_errorserror_log):

注意:强烈建议您使用错误日志记录代替生产网站上的错误显示。

如果你真的想修改 PHP 的错误信息,可以使用set_error_handler 设置自定义错误处理程序。

有关详细信息,另请参阅OWASP’s Development Guide on “Error Handling, Auditing and Logging”

【讨论】:

    【解决方案2】:

    您无法更改消息:它们是由 PHP 生成的,它们就是这样。


    但是您可以阻止它们显示给您网站的用户——并且仍然记录它们以供您自己使用。
    为此,请参阅:


    当然,这并不妨碍您尽可能多地修复导致通知/警告/错误的原因;-)

    【讨论】:

      【解决方案3】:

      摆脱所有无用的东西。

      php_flag display_errors 0
      

      一个人就够了。

      如果错误仍然存​​在,请检查服务器的 error_log 以获取错误消息

      【讨论】:

        猜你喜欢
        • 2020-02-28
        • 1970-01-01
        • 1970-01-01
        • 2014-07-13
        • 1970-01-01
        • 2020-05-12
        • 1970-01-01
        • 2017-02-03
        • 1970-01-01
        相关资源
        最近更新 更多