关闭错误显示

display_errors 
错误回显,一般常用语开发模式,但是很多应用在正式环境中也忘记了关闭此选项。错误回显可以暴露出非常多的敏感信息,为攻击者下一步攻击提供便利。推荐关闭此选项。 
display_errors = On 
开启状态下,若出现错误,则报错,出现错误提示 
dispaly_errors = Off 
关闭状态下,若出现错误,则提示:服务器错误。但是不会出现错误提示

log_errors 
在正式环境下用这个就行了,把错误信息记录在日志里。正好可以关闭错误回显。

对于PHP开发人员来说,一旦某个产品投入使用,那么第一件事就是应该将display_errors选项关闭,以免因为这些错误所透露的路径、数据库连接、数据表等信息而遭到黑客攻击。

某个产品投入使用后,难免会有错误信息,那么如何记录这些对开发人员非常有用的信息呢? 
将PHP的log_errors开启即可,默认是记录到WEB服务器的日志文件里,比如Apache的error.log文件。 
当然也可以记录错误日志到指定的文件中。

代码如下:
# vim /etc/php.inidisplay_errors = Off
log_errors = On
error_log = /var/log/php-error.log 

另外也可以设定error_log = syslog,使这些错误信息记录到操作系统的日志里。 
display_errors = Off //display中文意思是显示所以display_error=off的意思就是不显示错误了! 
error_reporting 设定错误讯息回报的等级 
2047我记得应该是E_ALL。 
php.ini 文件中有许多配置设置。您应当已经设置好自己的 php.ini 文件并把它放在合适的目录中,就像在 Linux 上安装 PHP 和 Apache 2 的文档说明中所示的那样(请参阅 参考资料)。在调试 PHP 应用程序时,应当知道两个配置变量。下面是这两个变量及其默认值: 
display_errors = Off //关闭所有错误信息,为ON时为显示所有错误信息。 
error_reporting = E_ALL 
E_ALL能从不良编码实践到无害提示到出错的所有信息。E_ALL 对于开发过程来说有点太细,因为它在屏幕上为一些小事(例如变量未初始化)也显示提示,会搞糟浏览器的输出 
所以不建议使用2047,最好把默认值改为:error_reporting = E_ALL & ~E_NOTICE

PHP.ini中display_errors = Off失效的解决

问题: 
PHP设置文件php.ini中明明已经设置display_errors = Off,但是在运行过程中,网页上还是会出现错误信息。 
解决: 
经查log_errors= On,据官方的说法,当这个log_errors设置为On,那么必须指定error_log文件,如果没指定或者指定的文件没有权限写入,那么照样会输出到正常的输出渠道,那么也就使得display_errors 这个指定的Off失效,错误信息还是打印了出来。于是将log_errors = Off,问题就解决了。

经常见到error_reporting(7)直意为:设定错误讯息回报的等级。

value constant 
1 E_ERROR 
2 E_WARNING 
4 E_PARSE 
8 E_NOTICE 
16 E_CORE_ERROR 
32 E_CORE_WARNING 
64 E_COMPILE_ERROR 
128 E_COMPILE_WARNING 
256 E_USER_ERROR 
512 E_USER_WARNING 
1024 E_USER_NOTICE 
2047 E_ALL 
2048 E_STRICT 
然而7=1+2+4 
就是出错时显示1 E_ERROR 2 E_WARNING 4 E_PARSE

代码如下:
<?php
//禁用错误报告
error_reporting(0);
//报告运行时错误
error_reporting(E_ERROR | E_WARNING | E_PARSE);
//报告所有错误
error_reporting(E_ALL);
?> 
时间: 2024-10-13 04:13:50

关闭错误显示的相关文章

wuzhicms页面报错 Notice 错误,如何关闭错误显示!

错误类型类似: PHP Notice:  Use of undefined constant E_DEPRECATED - assumed 'E_DEPRECATED' in D:\freehost\394786283a1\web\coreframe\core.php on line 18 打开文件:www/configs/web_config.php

django项目自定义错误显示页面

当把django项目部署到正式环境的时候,需要把settings里的debug设置关闭,这时候就需要自定义一些错误显示页面了 版本django1.11 步骤: 1 设置settings文件 DEBUG = False ALLOWED_HOSTS = [*] 2 配置urls文件 handler403 = views.permission_denied handler404 = views.page_not_found handler500 = views.page_error 3 配置views

Windows 关闭错误报告/弹窗

项目中需要第三方一个后台的第三方应用, 这就需要守护进程, 保证他一直在运行, 然而应用并不稳定. 在Win7,Win8,Win10中某些程序出错会出现Windows错误报告, 并且暂停应用不会退出, 这时候进程守护就会失效. 所以需要把错误报告弹窗关闭, 让程序发生错误后直接退出.  这样才能使守护进程生效. 一:注册表关闭弹窗(这个方法即可, 另一个可以顺便) 1.使用组合键"Win+R"打开运行窗口并输入"regedit"打开注册表编辑器窗口; 2.打开注册表

php开启与关闭错误提示

windows系统开关php错误提示 如果不具备修改php.ini的权限,可以将如下代码加入php文件中: 代码如下 复制代码 ini_set("display_errors", "On"); error_reporting(E_ALL | E_STRICT); 当然,如果能够修改php.ini的话,如下即可: 代码如下 复制代码 找到display_errors = On 修改为 display_errors = off 注意:如果你已经把PHP.ini文件复制到

nginx 安全笔记 (修改nginx的header信息和错误显示版本号)

随笔记载,欢迎指正: 修改nginx的header信息和错误显示版本号 1.隐藏版本号: nginx的配置文件nginx.conf找到http栏目加入: server_tokens off; 2.修改显示nginx的名称 需要修改源码文件: /opt/soft/nginx-1.2.0/src/http/ngx_http_special_response.c vi /opt/soft/nginx-1.2.0/src/http/ngx_http_special_response.c 找到29行: 2

动手动脑(课堂作业05)第二句错误显示为:类型不匹配:不能从 Mammal 转换为 Dog 第三句错误显示为:类型不匹配:不能从 Cat 转换为 Dog

---恢复内容开始--- 为什么子类的构造方法在运行之前,必须调用父类的构造方法?能不能反过来?为什么不能反过来? 构造函数(constructor)是一种特殊的方法 .主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中 .特别的一个类可以有多个构造函数 ,可根据其参数个数的不同或参数类型的不同来区分它们 即构造函数的重载.构造函数的功能主要用于在类的对象创建时定义初始化的状态.构造一个对象,先调用其构造方法,来初始化其成员函数和成员变量.子类

Windows Server 2016 - 关闭开机显示的管理服务页和关机时必须要输入原因

虽然服务器不需要经常开关机,但是毕竟是我家用,有时候甚至是把它当成一个极简的Windows10系统.每回开机就立刻跳出管理服务器的界面,而且加载还及其缓慢.让我想起了开机广告的一刀传奇.关机的时候,必须要输入原因才能进行,也是很麻烦.有时候就是想关机,并没有太多的理由.还好这两项都在一个地方可以关闭. 关闭这个讨厌的界面,Win + R, 打开gpedit.msc 按如下路径找到系统选项,关闭这两个功能都在一个地方. 启用“ 不显示‘管理你的服务器’ ”. 禁用“ 显示‘关闭时间跟踪程序’ ”.

Thinkphp设置仅在调试模式关闭时显示404页面

404页面是网站必备的一个页面,它承载着用户体验与SEO优化的重任.404页面通常为用户访问了网站上不存在或已删除的页面,服务器返回的404错误.如果站长没有设置404页面,会出现死链接,蜘蛛爬行这类网址时,不利于搜索引擎收录. 综上百科来的一堆啰嗦为一句话就是404页面是必要的: 接下来的内容就是讲述使用thinkphp时如何设置404页面: 本来奔着减少脑细胞损耗的原则:直接谷歌了下:结果发现市面上那些thinkphp设置404页面的文章都是千篇一律的建一个控制器:里面然后通过_empty(

Dynamics CRM2016 关闭错误报告弹框提示

在之前的版本中错误报告的弹框提示是可以在隐私首选项中设置关闭的,如下图所示 但是在2016中这个设置没了 有人说在右上角的选项中设置,但那个只能是设置个人的无法修改系统级别的.在系统中找了半天还是没有找到可以设置的地方,既然前台没有入口那只有打后台的主意了,打开组织数据库中的Organization表,将ReportScriptErrors字段的值修改为3(默认值是0)即为关闭.