屏蔽php显示错误信息+sql防注入常用函数
2017-09-07 10:38
477 查看
屏蔽php显示错误信息
那是因为php.ini中关闭了错误显示,将错误写成了文件,这是人为设置的结果display_errors =on就好了。
当PHP启动的时候,它将在Web服务器标准头信息中添加PHP版本号信息。如果希望关闭此功能,可以将expose_php设置为false。这项功能非常有用,例如,可以在Web服务器上屏蔽此信息以防范潜在的黑客攻击。
expose_php = On
不过不显示错误倒安全点,建议调试时打开,然后提供服务时关闭。
提供一点资料给你:
display_errors = On
php缺省是打开错误信息显示的,我们把它改为:
display_errors = Off
关闭错误显示后,php函数执行错误的信息将不会再显示给用户,这样能在一定程度上防止攻击者从错误信息得知脚本的物理位置,以及一些其它有用的信息,起码给攻击者的黑箱检测造成一定的障碍。这些错误信息可能对我们自己有用,可以让它写到指定文件中去,那么修改以下:
log_errors = Off
改为:
log_errors = On
以及指定文件,找到下面这行:
;error_log = filename
去掉前面的;注释,把filename改为指定文件,如/usr/local/apache/logs/php_error.log
error_log = /usr/local/apache/logs/php_error.log
这样所有的错误都会写到php_error.log文件里。
sql防注入常用函数
1.addslashes() 函数返回在预定义字符之前添加反斜杠的字符串。
预定义字符是:
单引号(')
双引号(")
反斜杠(\)
NULL
提示:该函数可用于为存储在数据库中的字符串以及数据库查询语句准备字符串。
注释:默认地,PHP 对所有的 GET、POST 和 COOKIE 数据自动运行 addslashes()。所以您不应对已转义过的字符串使用 addslashes(),因为这样会导致双层转义。遇到这种情况时可以使用函数 get_magic_quotes_gpc() 进行检测。
//判断magic_quotes_gpc状态 if (@get_magic_quotes_gpc ()) { $_GET = sec ( $_GET ); //sec()是自定义方法,不用太纠结 $_POST = sec ( $_POST ); $_COOKIE = sec ( $_COOKIE ); $_FILES = sec ( $_FILES ); }
addslashes的问题在 于黑客 可以用0xbf27来代替单引号,而addslashes只是将0xbf27修改为0xbf5c27,成为一个有效的多字节字符,其中的0xbf5c仍会 被看作是单引号,所以addslashes无法成功拦截, 可以用于单字节字符串的处理。
2.
htmlspecialchars() 函数把预定义的字符转换为 HTML 实体。
预定义的字符是:
& (和号)成为 & " (双引号)成为 " ' (单引号)成为 ' < (小于)成为 < > (大于)成为 >
提示:如需把特殊的 HTML 实体转换回字符,请使用 htmlspecialchars_decode() 函数。
3.
多字节字符用mysql_real_escape_string()或mysql_escape_string()
mysql_real_escape_string()
函数转义 SQL 语句中使用的字符串中的特殊字符。
下列字符受影响:
\x00
\n
\r
\
'
"
\x1a
如果成功,则该函数返回被转义的字符串。如果失败,则返回 false。提示:可使用本函数来预防数据库攻击。
mysql_real_escape_string和mysql_escape_string这2个函数的区别:
mysql_real_escape_string 必须在(PHP 4 >= 4.3.0, PHP 5)的情况下才能使用; 否则只能用 mysql_escape_string
两者的区别是:mysql_real_escape_string
考虑到连接的当前字符集,而mysql_escape_string 不考虑。
mysql_real_escape_string 函数将 string 中的特殊字符转义,并考虑到连接的当前字符集,因此可以安全用于 mysql_query()。
相关文章推荐
- PHP.ini中配置屏蔽错误信息显示和保存错误日志的例子
- PHP.ini中配置屏蔽错误信息显示和保存错误日志的例子
- 屏蔽php显示错误信息
- PHP.ini中配置屏蔽错误信息显示和保存错误日志的例子
- PHP.ini中配置屏蔽错误信息显示和保存错误日志
- PHP错误信息(errors)的屏蔽和显示-设置PHP.ini
- PHP.ini 设置PHP错误信息(errors)的屏蔽和显示
- 怎样才可以得到PHP的出错信息?php运行时不显示错误信息。如何屏蔽php出错信息?
- lnmp 开发环境下显示php错误信息
- Hive常用的SQL命令操作(hive shell下show functions显示所有可用的函数,describe function 函数名查看具体用法)
- 项目上线,php的错误信息必须不让其在页面中显示给客户,
- Atitit.dwr3 不能显示错误具体信息的解决方式,控件显示错误具体信息的解决方式 java .net php
- 屏蔽 php错误信息
- php显示错误信息
- PHP捕捉错误并显示友好信息的方法(不使用try...catch)
- PHP 错误信息屏蔽
- 让php显示详细错误信息,但不改php.ini的方法
- php非常有用的显示错误信息的方法
- php中addslashes函数与sql防注入
- php:修改php.ini以达到屏蔽程序的错误信息