×

php屏蔽错误输出

php屏蔽错误输出(php消除警告)

admin admin 发表于2023-03-11 19:28:09 浏览83 评论0

抢沙发发表评论

本文目录一览:

WordPress禁止输出错误信息设置方法

用网站安全检测扫瞄博客 发现了一个漏洞 实际上就是直接访问主题路径的话 get_header()函数未生效(Call to undefined function get_header() ) 而我的WordPress会输出完整的错误信息 将敏感名称的目录结构暴露了 虽然对正常访问没有影响 可是会给某些人可乘之机 经常在博客后台看到很多人扫瞄博客各种路径或文件 尽可能多的解决漏洞 会大大增强网站安全性 秀一下我的博客安全性 分 没有漏洞 虽说只是表面的 但是我会发现一个解决一个!

下面详细说明下我遇到的问题和解决方案 供参考

环境 linux vps + lnmp

完整错误信息如下

Fatal error: Call to undefined function get_header() in /网站根路径/izhangheng/wp content/themes/entyelve/ on line -php屏蔽错误输出

解决方案 如果WEB应用程序自带错误处理/管理系统 请确保功能开启 否则按语言 环境 分别进行处理 如果是PHP应用程序/Apache服务器 可以通过修改php脚本 配置php ini以及中的配置项来禁止显示错误信息 -php屏蔽错误输出

修改php ini中的配置行: display_errors = off 修改中的配置行: php_flag display_errors off 修改php脚本 增加代码行: ini_set(‘display_errors’ false);-php屏蔽错误输出

针对这个问题 仅不显示错误信息是不完美的 出错后跳转到首页 可以避免流量丢失 我的环境默认就关闭显示错误信息 只需要在有漏洞的页面源码前调用WordPress函数即可 首先进入到WordPress后台的外观中 比如编辑的是index php首页模版 将头部代码更改为下面的即可 注意所有符号为英文 -php屏蔽错误输出

 代码如下   lishixinzhi/Article/program/PHP/201311/21108

PHP没有错误提示

PHP没有错误提示是设置错误造成的,解决方法为;

1、确认了PHP的配置文件的路径之后,在文本编辑器打开该文件。

2、在文件中查找,display_errors=On代表错误提示开启display_errors=OnOff代表错误提示关闭display_errors=Off。

3、实例演示,定义一个错误的PHP语法。

4、在浏览器预览的时候,不能正确打印,却不报错,因为当前的display_errors=Off,错误提示没有开启。

5、开启PHP的错误提示,设置:display_errors=On并保存该文件的新设置。

6、保存设置之后,再次重启apache服务。

7、现在已经成功开启了PHP的错误提示,可以正常报告错误信息了。

php怎么屏蔽warning

诸如下面这些错误的提示:Warning: file_get_contents(/usr/local/tads/htdocs/XXXXXX/src/cache/countLoginnum.txt) [function.file-get-contents]: failed to open stream: No such file or directory in/usr/local/tads/htdocs/XXXXXXX/src/controllers/defaultController.php on line 43Warning: Cannot modify header information - headers already sent by (output started at /usr/local/tads/htdocs/XXXXXX/src/config/env.php:5) in/usr/local/taesdk/1.0/phplib3/src/base/core/TMWebResponse.class.php on line 332有的时候代码的警告会导致整个项目无法运行,比如某个变量无对象的情况,若无影响,这时如果屏蔽警告,就可以使整个项目恢复正常运行。当然它的作用不在于这,而是在成品网站或做服务器时,不输出错误信息可以减少被黑客攻击的风险(对于一些容易出错并且容易暴漏敏感数据的代码,一般多在数据库这块吧),也能在出错的情况下仍保持网站的美观。至于在调试下,那这个错误提示信息还是比较有用的,可以在PHP页面最前边加上一句: error_reporting(E_ALL ~E_NOTICE);让出错时显示错误信息。屏蔽的方法:-php屏蔽错误输出

屏蔽PHP错误提示方法一、在有可能出错的函数前加@,然后or die("") 如: @mysql_connect(...) or die("Database Connect Error")

屏蔽PHP错误提示方法二、编辑php.ini ,查找"display_errors =" ,将“=”后面的值改为"off。

屏蔽PHP错误提示方法三、在php脚本前加error_reporting(0),屏蔽所有错误提示。

例:

@$a = $b['a']; //忽略@后面语句的错误

$a = @$b['a']; //忽略@后面语句的错误,推荐使用这句。因为错误是在$b这个数组中发生的,所以@符号在$b前就可以了,这是错误真正发生的地方。

6.如何禁止php服务程序中不安全的功能?

为了使php程序更安全,很多站长都选择了禁用一些比较敏感的函数,那影响php安全的函数到底有哪些呢,下面我们列出了一些:

1、phpinfo()

功能描述:输出 PHP 环境信息以及相关的模块、WEB 环境等信息。

危险等级:中

2、passthru()

功能描述:允许执行一个外部程序并回显输出,类似于 exec()。

危险等级:高

3、exec()

功能描述:允许执行一个外部程序(如 UNIX Shell 或 CMD 命令等)。

危险等级:高

4、system()

功能描述:允许执行一个外部程序并回显输出,类似于 passthru()。

危险等级:高

5、chroot()

功能描述:可改变当前 PHP 进程的工作根目录,仅当系统支持 CLI 模式

PHP 时才能工作,且该函数不适用于 Windows 系统。

危险等级:高

6、scandir()

功能描述:列出指定路径中的文件和目录。

危险等级:中

7、chgrp()

功能描述:改变文件或目录所属的用户组。

危险等级:高

8、chown()

功能描述:改变文件或目录的所有者。

危险等级:高

9、shell_exec()

功能描述:通过 Shell 执行命令,并将执行结果作为字符串返回。

危险等级:高

10、proc_open()

功能描述:执行一个命令并打开文件指针用于读取以及写入。

危险等级:高

11、proc_get_status()

功能描述:获取使用 proc_open() 所打开进程的信息。

危险等级:高

12、error_log()

功能描述:将错误信息发送到指定位置(文件)。

安全备注:在某些版本的 PHP 中,可使用 error_log() 绕过 PHP safe mode,

执行任意命令。

危险等级:低

13、ini_alter()

功能描述:是 ini_set() 函数的一个别名函数,功能与 ini_set() 相同。

具体参见 ini_set()。

危险等级:高

14、ini_set()

功能描述:可用于修改、设置 PHP 环境配置参数。

危险等级:高

15、ini_restore()

功能描述:可用于恢复 PHP 环境配置参数到其初始值。

危险等级:高

16、dl()

功能描述:在 PHP 进行运行过程当中(而非启动时)加载一个 PHP 外部模块。

危险等级:高

17、pfsockopen()

功能描述:建立一个 Internet 或 UNIX 域的 socket 持久连接。

危险等级:高

18、syslog()

功能描述:可调用 UNIX 系统的系统层 syslog() 函数。

危险等级:中

19、readlink()

功能描述:返回符号连接指向的目标文件内容。

危险等级:中

20、symlink()

功能描述:在 UNIX 系统中建立一个符号链接。

危险等级:高

如何有效的屏蔽掉PHP警告和错误提示

方法一、在有可能出错的函数前加@,然后or die("")

如:

@mysql_connect(...) or die("Database Connect Error")

屏蔽PHP错误提示方法二、编辑php.ini ,查找"display_errors =" ,将“=”后面的值改为"off。

屏蔽PHP错误提示方法三、在php脚本前加error_reporting(0),屏蔽所有错误提示。

error_reporting

配置错误信息回报的等级。

语法: int error_reporting(int [level]);

返回值: 整数

函数种类: PHP 系统功能

屏蔽PHP错误提示函数内容说明

本函数用来配置错误信息回报的等级,参数 level 是一个整数的位遮罩 (bitmask),见下表。

遮罩值 表示名称

E_ERROR

E_WARNING

E_PARSE

E_NOTICE

E_CORE_ERROR

E_CORE_WARNING

E_NOTICE 表示一般情形不记录,只有程序有错误情形时才用到,例如企图存取一个不存在的变量,或是呼叫 stat() 函数检视不存在的文件。

E_WARNING 通常都会显示出来,但不会中断程序的执行。这对除错很有效。例如:用有问题的正则表达式呼叫 ereg()。

E_ERROR 通常会显示出来,亦会中断程序执行。意即用这个遮罩无法追查到内存配置或其它的错误。

E_PARSE 从语法中解析错误。

E_CORE_ERROR 类似 E_ERROR,但不包括 PHP 核心造成的错误。

E_CORE_WARNING 类似 E_WARNING,但不包括 PHP 核心错误警告。

error_reporting( 7 ) = error_reporting( 1+2+4) = error_reporting(E_ERROR | E_WARING | E_PARSE)

以上就是屏蔽PHP错误提示的相关实现方法。

如何有效实现

php @这个符号,什么意思,什么功能。

它会抑制错误消息。

PHP支持一个错误控制操作符:at符号(@)。当添加到PHP中的表达式时,该表达式可能生成的任何错误消息都将被忽略。

如果已将自定义错误处理程序函数设置为SET错误处理程序()然后它仍然会被调用,但是这个自定义错误处理程序可以(而且应该)调用错误报告()当触发错误的调用前面有@.时,它将返回0。

@符号是差错控制操作者(又称“沉默”或“关闭”操作员)。它使PHP禁止由关联表达式生成的任何错误消息(注意、警告、致命等)。它的工作原理就像一个一元运算符,例如,它具有优先性和结合性。

扩展资料

错误控制运算符顾名思义就是用来控制错误输出,这个控制只是将错误信息屏蔽掉,不让其显示出来,并不是真正的解决错误。

经常在程序中使用某些函数出现一些不必要的错误信息时,可以使用该运算符进行屏蔽,前提是这个错误信息不影响程序的运行。如果对一些影响程序运算的错误,不推荐使用错误控制符,这样不利于消除程序的错误。

下面看一下错误控制运算符的使用实例:

当打开一个不存在的文件时,用“@”来屏蔽错误信息的输出;

在不使用“@”时;

?php

$open_file = fopen("index.php","r");

?

会有以下的输出:

上面是一个警告错误信息提示,大致的意思提示我们index.php"这个文件不存在。错误信息在第三行...