PHP漏洞全解(一)PHP网站的安全性问题

2025-05-24 09:48:16
摘要:本文主要介绍针对PHP网站常见的攻击方式,包括常见的sql注入,跨站等攻击类型。同时介绍了PHP的几个重要参数设置。

本文主要介绍针对PHP网站常见的攻击方式,包括常见的sql注入,跨站等攻击类型。同时介绍了PHP的几个重要参数设置。后面的系列文章将站在攻击者的角度,为你揭开PHP安全问题,同时提供相应应对方案。



针对PHP的网站主要存在下面几种攻击方式:

1、命令注入(Command Injection)

2、eval注入(Eval Injection)

3、客户端脚本攻击(Script Insertion)

4、跨网站脚本攻击(Cross Site Scripting, XSS)

5、SQL注入攻击(SQL injection)

6、跨网站请求伪造攻击(Cross Site Request Forgeries, CSRF)

7、Session 会话劫持(Session Hijacking)

8、Session 固定攻击(Session Fixation)

9、HTTP响应拆分攻击(HTTP Response Splitting)

10、文件上传漏洞(File Upload Attack)

11、目录穿越漏洞(Directory Traversal)

12、远程文件包含攻击(Remote Inclusion)

13、动态函数注入攻击(Dynamic Variable Evaluation)

14、URL攻击(URL attack)

15、表单提交欺骗攻击(Spoofed Form Submissions)

16、HTTP请求欺骗攻击(Spoofed HTTP Requests)

以后的每期连载,会逐个介绍这些漏洞的原理和防御方法。

几个重要的php.ini选项:

RegisterGlobals

php>=4.2.0,php.ini的register_globals选项的默认值预设为Off,当register_globals

的设定为On时,程序可以接收来自服务器的各种环境变量,包括表单提交的变量,而且由于PHP不必事先初始化变量的值,从而导致很大的安全隐患。

例1:

//check_admin()用于检查当前用户权限,如果是admin设置¥is_admin变量为true,然后下面判断此变量是否为true,然后执行管理的一些操作。

//ex1.php



if(check_admin())

{

¥is_admin=true;

}

if(¥is_admin)

{

do_something();

}

?>

这一段代码没有将¥is_admin事先初始化为Flase,如果register_globals为On,那么我们直接提交http://www.sectop.com/ex1.php?is_admin=true,就可以绕过check_admin()的验证:

例2:

//ex2.php



if(isset(¥_SESSION[username]))

{

do_something();

}

else

{

echo您尚未登录!;

}

?>

当register_globals=On时,我们提交http://www.sectop.com/ex2.php?_SESSION[username]=dodo,就具有了此用户的权限所以不管register_globals为什么,我们都要记住,对于任何传输的数据要经过仔细验证,变量要初始化。

safe_mode

安全模式,PHP用来限制文档的存取、限制环境变量的存取,控制外部程序的执行。启用

安全模式必须设置php.ini中的safe_mode=On

1、限制文件存取

safe_mode_include_dir=/path1:/path2:/path3

不同的文件夹用冒号隔开

2、限制环境变量的存取

safe_mode_allowed_env_vars=string

指定PHP程序可以改变的环境变量的前缀,如:safe_mode_allowed_env_vars=PHP_ ,当这个选项的值为空时,那么php可以改变任何环境变量

safe_mode_protected_env_vars=string用来指定php程序不可改变的环境变量的前缀。

3、限制外部程序的执行

safe_mode_exec_dir=string

此选项指定的文件夹路径影响system、exec、popen、passthru,不影响shell_exec和“““”。

disable_functions=string

不同的函数名称用逗号隔开,此选项不受安全模式影响。

magicquotes

用来让php程序的输入信息自动转义,所有的单引号(“'”),双引号(“”),反斜杠(“\”)和空字符(NULL),都自动被加上反斜杠进行转义magic_quotes_gpc=On用来设置magicquotes为On,它会影响HTTP请求的数据(GET、POST、Cookies)程序员也可以使用addslashes来转义提交的HTTP 请求数据,或者用stripslashes 来删除转义。

你觉得这篇文章怎么样?

7 0
本文标签: PHP漏洞

我们立足于合肥面向安徽乃至全国全球市场,我们拥有一支经验丰富、创意独到、团结协作的专业技术团队。我们立志把最好的技术通过最有效、最简单的方式提供给客户,为客户提供最佳的解决方案,我们将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,帮助客户在新经济时代下,把握商机和发展空间,并获得绝对的竞争力!我们专注于高端网站定制、系统开发、商城开发、外贸网站建设、公众号开发、小程序开发、网站优化推广、安全运维等技术领域。是高端定制网站领域著名服务商!

扫描二维码与小二CMS创始人沟通

7*24小时为您服务

小二CMS专注于高端网站定制、系统开发、商城开发、外贸网站建设、公众号开发、小程序开发、网站优化推广、安全运维等技术领域。是高端定制网站领域著名服务商!

本文标题:PHP漏洞全解(一)PHP网站的安全性问题
免责声明:文章《PHP漏洞全解(一)PHP网站的安全性问题》来至网络,文章表达观点不代表本站观点,文章版权属于原作者所有,若有侵权,请联系本站站长处理!
关于我们

建站190专注于高端网站建设服务及定制,拥有丰富的企业网站建站经验。 近年来制作并完成了许多网站建设案例,企业品牌官网、营销型网站的建设、B2C网上商城系统开发、行业门户网站等平台开发,我们还提供了网站的策划、设计、开发、布署、安全等一站式专业的网站建设解决方案。建站190致力于研发国内最专业、功能最强大,扩展性能最自由灵活的高端行业通用的网站系统。我们做的不仅仅是网站系统,更多的是成就您的成功!

我们的优势

十三年建站服务经验
服务3000家企业
资深行业分析策划
前沿视觉设计、研发能力
前端代码深度符合SEO优化
千家成功案例

独家源码出售
具有完备的项目管理
完善的售后服务体系
深厚的网络运营经验
时刻新技术领先研发能力
方便二次开发

我们的不同

我们是一个年轻且富有激情的团队,我们沉迷于代码并陶醉在设计之中。我们非设计,不生活;无兄弟,不编程!可年轻并不意味着没有经验。团队成员均来自各顶尖设计公司及软件公司,我们对网站设计及开发驾轻就熟,有着数百个成功案例。我们坚信用心服务,用实力说话!我们的使命:通过我们的努力,让技术改变命运!我们的宗旨:客户第一,品质至上!我们的信念:唯有客户的成功,才是我们的成功!

不忘初心,方得始终
中高端网站定制开发服务商
与我们取得联系

好作品自己会说话,

我们敬畏您给予的点滴信任 !

期待携手合作,请立即咨询我们:
QQ咨询
微信咨询
我们用心,期待您成为我们的客户
联系QQ客服

QQ扫码联系客服

联系微信客服

微信扫码联系客服

微信号:
添加微信好友, 详细咨询相关信息。

复制并跳转微信
19810950281