本文目录一览:
- 1、WordPress禁止输出错误信息设置方法
- 2、PHP没有错误提示
- 3、php怎么屏蔽warning
- 4、6.如何禁止php服务程序中不安全的功能?
- 5、如何有效的屏蔽掉PHP警告和错误提示
- 6、php @这个符号,什么意思,什么功能。
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"这个文件不存在。错误信息在第三行...