`
qq370079140
  • 浏览: 15559 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

PHP四大安全策略

 
阅读更多

一、文件系统安全
php如果具有root权限,且在脚本中允许用户删除文件,那么用户提交数据,不进行过滤,就非常有可能删除系统文件

<?php
// 从用户目录中删除指定的文件
$username = $_POST['user_submitted_name'];
$userfile = $_POST['user_submitted_filename'];
$homedir = "/home/$username";
unlink ("$homedir/$userfile");
echo "The file has been deleted!";
?>
上面的代码,假设用户提交的$userfile值是 ../etc/,那么/etc目录就会被删除
防范文件系统攻击,策略如下

只给php有限的权限
用户提交上来的变量要监测和过滤,不能包含文件路径等特殊字符
尽量避免使用PHP操作文件(删除),如果有这方面的需求,那用户可删除文件也必须是系统生成的随机名称,不可被用户控制
二、数据库安全
数据库安全主要防范的是sql injection,即sql注入攻击,提升数据库安全的策略如下:

不用使用root帐号或者数据库所有者帐号连接数据库,连接数据库限定连接用户的ip
使用php的pdo扩展,有效防止sql注入,除了安全方面的优势,php的pdo扩展在性能方面有有很大优势
请参看 http://php.net/manual/en/pdo.prepared-statements.php
对一些敏感信息进行加密,常见的比如对密码进行加密
三、用户数据过滤
对用户数据过滤,可以防范XSS和CSRF攻击

使用白名单(用户输入是固定模式)的方式
比如用户名只能使用数字字母,那么可以使用函数ctype_alnum判断
对用户输入使用函数 htmlentities或者htmlspecialchars进行处理,输入url不允许传入非http协议
用户身份验证使用令牌 token(csrf)
http://htmlpurifier.org/ HTML Purifier 是开源的防范xss攻击的有效解决方案,
四、其他安全策略
线上环境关闭错误报告(error_reporting,dislay_erros,可在php.ini中配置error_log路径,记录错误信息,这样有助于发现可能的用户攻击)
Register Globals,弃用(移除)的特性,不要使用
魔术引号特性,不要开启,在PHP-5.4中已经被移除
尽量使用PHP的最新版本,最新版本修复了已知的很多PHP安全漏洞和bug

代码中严格遵守上述策略,基本能保证代码不会有太多的安全漏洞,能防范常见攻击。

分享到:
评论

相关推荐

    PHP点菜系统管理

    为了保证系统的安全性和效率,开发者需要注意SQL注入防护、数据验证、缓存策略等。例如,使用预编译语句防止SQL注入,对敏感信息进行加密存储,优化查询语句以减少数据库负载。 7. 部署与维护 "server"文件可能包含...

    親手打造網際網路四大服務 源代码

    书中可能详细讲解了如何使用如Apache或Nginx这样的开源软件搭建Web服务器,包括配置静态文件服务、动态脚本处理(如PHP)、虚拟主机设置以及安全优化等内容。 2. FTP服务器:FTP(文件传输协议)服务器用于在互联网...

    php进销存web管理

    3. 业务逻辑:通过PHP的面向对象编程特性,可以构建复杂的业务规则,如库存预警、价格策略、销售分析等功能。 三、系统架构设计 1. 前端:通常采用HTML5、CSS3和JavaScript,构建响应式的用户界面,提供良好的用户...

    【君哥内推】蔚来汽车上海总部4大安全岗位虚席以待!.pdf

    蔚来汽车上海总部现招募四大安全岗位,分别是SDL安全工程师、安全研发工程师、Web应用安全工程师和数据安全经理。接下来将从职位描述和岗位要求两个方面对这些职位所涉及的知识点进行详细介绍。 首先,SDL安全...

    Discuz! v6.0.0 UFT8简体中文版

    Discuz v6.0.0 简体中文正式版采用PHP和MySQL/Pgsql构建高效论坛系统。是中国使用最多的论坛系统。Discuz! 5.5.0为最新版本拥有首创的论坛Mini-Space、独家防落陷系统、全新的道具中心、多样的广告位布局、实用的WAP...

    网上商城系统的设计与实现

    首先,网上商城系统的设计需要遵循用户友好性、安全性、可扩展性和稳定性四大原则。用户友好性意味着界面简洁明了,操作流程顺畅,能够快速引导用户完成购物过程;安全性涵盖数据保护、交易安全和隐私保护,确保消费...

    医院预约挂号系统

    医院预约挂号系统通常由前端用户界面、后端服务器、数据库和接口服务四大部分构成。前端负责展示预约信息、接收用户请求;后端服务器处理业务逻辑,如验证用户信息、分配预约号等;数据库存储患者、医生、预约等...

    电子商城基本框架

    在实际开发过程中,电子商城还需要考虑其他重要因素,如安全性(防止SQL注入、XSS攻击等)、性能优化(缓存策略、负载均衡)、SEO优化、移动端适配以及多语言、多货币支持等。此外,为了提升用户体验,往往还需要...

    华为公有云CloudServices中级考试.pdf

    3. 云原生四大应用:云原生四大应用包括DevOps(持续集成/持续交付)、持续交付、容器技术以及微服务,这些技术共同推动了软件开发的敏捷性和可扩展性。 4. 华为云三大中间件服务:DCS(分布式缓存服务)、DMS...

    mysql--软件.zip

    SQL是操作MySQL的核心语言,主要包括数据查询、数据插入、数据更新和数据删除四大操作。例如,SELECT语句用于查询数据,INSERT用于添加新记录,UPDATE用于修改现有记录,DELETE用于删除记录。此外,还有JOIN操作用于...

    Dapr分布式应用运行时详解及实列.docx

    2. **四大核心需求**:Dapr旨在满足分布式应用的四个基本需求:网络(Networking)、生命周期(Lifecycle)、状态(State)和捆绑(Binding)。Service Mesh如Istio解决了网络问题,而Dapr则扩展了这一概念,提供了...

    MYSQL语法参考手册参考大全

    MySQL支持SQL的四大基本操作:SELECT(查询)、INSERT(插入)、UPDATE(更新)和DELETE(删除)。在SQL语法中,我们学习如何创建、修改和删除数据表,以及如何检索、更新和删除数据。 二、数据类型 MySQL提供了...

    阅读数据库

    3. **CRUD操作**:创建(Create)、读取(Read)、更新(Update)和删除(Delete)是数据库操作的四大基本动作。在JavaScript中,这通常通过调用特定的数据库API实现。例如,创建新记录时,可能需要调用`insertInto`...

    MySQLDBA运维笔记.pdf

    1.3 mysql 基础安全................................................................................................................21 1.3.1 启动程序设置 700,属主和用户组为 mysql .........................

Global site tag (gtag.js) - Google Analytics