PHP四大安全策略

一、文件系统安全

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

// 从用户目录中删除指定的文件

$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的最新版本,最新版本修复了已知的很多安全漏洞和bug

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

详解Android JS相互调用

js防止页面被iframe调用的方法

php实现使用正则将文本中的网址转换成链接标签

Java对时间的简单操作实例

javascript浏览器兼容教程之事件处理

jQuery选择器基础入门教程

CSS3实现的炫酷菜单代码分享

PHP遍历某个目录下的所有文件和子文件夹的实现代码

javascript生成随机颜色示例代码

JavaScript使用指针操作实现约瑟夫问题实例

MySQL SQL语句优化的10条建议

jQuery.deferred对象使用详解

javascript带回调函数的异步脚本载入方法实例分析

jQuery拖拽插件gridster使用指南

php 安全包含文件系统,PHP_PHP四大安全策略,一、文件系统安全php如果具有r - phpStudy...相关推荐

  1. 嵌入式linux文件系统格式,嵌入式Linux的文件系统分区及数据读写方法与流程

    本发明涉及Linux系统的数据存储管理领域,特别是涉及一种基于NANDFlash存储器和UBIFS文件系统的嵌入式Linux的文件系统分区及数据读写方法. 背景技术: ::目前Linux操作系统由于源 ...

  2. Exynos4412 文件系统制作(三)—— 文件系统移植

    根文件系统一直以来都是所有类Unix操作系统的一个重要组成部分,也可以认为是嵌入式Linux系统区别于其他一些传统嵌入式操作系统的重要特征,它给Linux带来了许多强大和灵活的功能,同时也带来了一些复 ...

  3. Linux 文件系统与设备文件系统 (二)—— sysfs 文件系统与Linux设备模型

    提到 sysfs 文件系统 ,必须先需要了解的是Linux设备模型,什么是Linux设备模型呢? 一.Linux 设备模型 1.设备模型概述 从2.6版本开始,Linux开发团队便为内核建立起一个统一 ...

  4. html云文件系统,一种HTML5云文件系统

    一种HTML5云文件系统 胡岘 易晓东 戴华东 国防科技大学计算机学院 湖南 410073 摘要:本文提出了一种HTML5云文件系统,使得HTML5应用能够像访问传统文件系统一样访问云存储.HTML5 ...

  5. linux不同用户移动文件系统,第三节 linux:文件系统以及文件操作命令

    有一句话: linux上一切皆文件 1文件系统 操作系统3大模块:进程管理,内存管理,文件系统 1.1定义:文件系统是操作系统在存储设备上组织管理文件的方法. 1.2不同操作系统文件系统不同,简单来说 ...

  6. linux文件系统的基本特征,Linux文件系统的基本结构

    Linux文件系统结构 通过下面两张图片来认识一下Linux文件系统的结构. 当前工作目录 实践: 文件名称 这些规则不仅适用于文件,也适用于文件夹. 实践: ls命令 ls命令表示列出当前工作目录的 ...

  7. linux 开机 找不到 文件系统 下载文件系统就好了,根文件系统构建和实验过程

    1.1.根文件系统构建路线 1.先逐步构建文件夹形式的根文件系统然后在制作烧录镜像 2.1.busybox移植实战 1.busybox中是一些shell命令集 2.busybox××× (1)busy ...

  8. Hadoop分布式文件系统(HDFS)之文件系统(详细版)

    交朋友增体面,不如交朋友益身心 教子弟求显荣,不如教子弟立品行 推荐书目电子版下载 Hadoop必读书目(精选) 本文参考文献包含于上述书籍 HDFS快速入门 Hadoop分布式文件系统(HDFS)快 ...

  9. 【文件系统制作】制作jffs文件系统

    最近在写专利,中期答辩前的必备材料还差一篇论文......抽一个周五的晚上来完善一下之前留下的坑,慢慢来吧,先把这些弄完,希望可以在下月中旬之前把论文弄好,然后专心学习...好运 1.Linux根文件 ...

最新文章

  1. CMake基础 第8节 包含第三方库
  2. div中的table内容过多时不超出div的范围解决方法
  3. mp4v2 写mp4 java_使用mp4v2将H264+AAC合成mp4文件
  4. Java实现将二进制文件显示为图片(SU中的ximage)
  5. 《从问题到程序:用Python学编程和计算》——2.4 字符串
  6. xcode 不能选择模拟器
  7. Ubuntu彻底卸载MySQL
  8. 有限自动机字符串匹配
  9. 3D动画在线播放工具-3dplayer功能演示
  10. 更新显示服务器同步出错,win10系统同步internet时间总是提示同步时出错的解决方案...
  11. 企业内部控制管理与全面风险管理体系建设知识问答
  12. 阿里云网盘内测申请_33期——阿里云网盘之内测申请(一)
  13. mysql increment_mysql中auto_increment是干什么的?
  14. 怎么实现使用手机号、邮箱、用户名登录
  15. LaTex 数学之运算符
  16. 系统镜像的方法,大批量电脑重装的方法
  17. 计算机系技能大赛策划案,计算机基本技能大赛”活动策划书
  18. 南加州计算机硕士学费,2016年度美国南加州大学排名及研究生学费费用简介.pdf...
  19. 在stm32f103c8上移植nuttx系统
  20. android app代码审计,常规漏洞/缺陷整理(持续更新)

热门文章

  1. 函数调用基础概念原理
  2. gazebo入门_Gazebo仿真控制中,有哪些你不知道的秘密?
  3. html弹窗超链接,点出超链接弹出一个小窗口
  4. qq远程控制电脑方法_【技术分享】教你远程控制别人电脑
  5. amp sqlserver中 什么意思_sql server中创建表时各个数据类型时什么意思??
  6. vue中安装sass
  7. java集合体检套餐管理系统_体检套餐管理系统
  8. excel中怎样用公式获取表单控件_老会计不愿教的工资表汇总公式,真是太好用了...
  9. QString之simplified()含义
  10. Android开发之无bug滑动删除源码(非第三方库)