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 来删除转义。

小程序二维码

查看演示

微信公众号二维码

关注微信公众号

你觉得这篇文章怎么样?

30 0
本文标签: PHP漏洞

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

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

7*24小时为您服务

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

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

小二CMS​ 专注高端网站建设及定制,同时深耕微信小程序开发、移动端开发,拥有丰富的企业建站与多终端项目经验。多年来成功交付众多案例——包括企业品牌官网、营销型网站、B2C商城系统、行业门户网站,以及高性能微信小程序、跨平台移动端应用等。我们提供从策划、设计、开发、部署到安全的一站式专业解决方案,覆盖网站、小程序与移动端全终端,确保项目高效落地与优质体验。小二CMS持续研发国内领先、功能强大、扩展灵活的高端行业通用网站+小程序+移动端系统,不止于技术实现,更以全终端数字化能力成就客户的商业成功。

我们的优势

十二载专注高端网站建设
服务上千企业积淀厚口碑
资深策划洞悉行业与用户
前沿设计研发彰显硬实力
前端代码深融契合好优化
千家案例实证品质可信赖
精英团队高效协同创精品
多重防护保障数据与运行
贴心服务换位洞察客所需

独家源码出售握牢自主权
完备项目管理保稳提效能
完善售后体系全程护无忧
深厚运营经验赋能快发展
时刻研发领新技术占先机
跨端适配畅行多屏与场景
持续迭代快速响应新需求
严控品质每环节臻于至善
架构灵活便二次开发拓展

我们的不同

我们是一支年轻而充满激情的团队,痴迷代码,沉醉设计,坚信设计与编程不仅是工作,更是生活的信仰——“非设计,不生活;无兄弟,不编程!”年轻,却不失深厚积淀。团队成员来自国内外顶尖设计公司与软件企业,精通网站设计与开发,已成功交付数百个项目,涵盖品牌官网、电商平台、小程序及移动端应用。我们坚持以用心服务立身,用实力赢得信赖。使命:以技术之力,助力改变命运。宗旨:客户第一,品质至上。信念:客户的成功,才是我们真正的成功。

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

好作品自己会说话,

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

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

QQ扫码联系客服

联系微信客服

微信扫码联系客服

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

复制并跳转微信
19810950281