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的最新版本,最新版本修复了已知的很多安全漏洞和bug
代码中严格遵守上述策略,基本能保证代码不会有太多的安全漏洞,能防范常见攻击。

(0)

相关推荐

  • PHP四大安全策略

    一.文件系统安全php如果具有root权限,且在脚本中允许用户删除文件,那么用户提交数据,不进行过滤,就非常有可能删除系统文件 <?php// 从用户目录中删除指定的文件$username = $_POST['user_submitted_name'];$userfile = $_POST['user_submitted_filename'];$homedir = "/home/$username";unlink ("$homedir/$userfile");

  • 浅谈数据库事务四大特性

    数据库四大特性分别是:原子性.一致性.分离性.持久性.下面我们看看具体介绍. 原子性 事务的原子性指的是,事务中包含的程序作为数据库的逻辑工作单位,它所做的对数据修改操作要么全部执行,要么完全不执行.这种特性称为原子性. 事务的原子性要求,如果把一个事务可看作是一个程序,它要么完整的被执行,要么完全不执行.就是说事务的操纵序列或者完全应用到数据库或者完全不影响数据库.这种特性称为原子性. 假如用户在一个事务内完成了对数据库的更新,这时所有的更新对外部世界必须是可见的,或者完全没有更新.前者称事务

  • Oracle数据库的安全策略

    正在看的ORACLE教程是:Oracle数据库的安全策略. ---- Oracle是关系型数据库管理系统,它功能强大.性能卓越,在当今大型数据库管理系统中占有重要地位.在我们开发的一MIS系统中,选用了Oracle7.3数据库.在正常情况下,Oracle数据库会保证数据的安全.稳定,为用户提供正确的数据,但由于计算机系统的故障(硬件故障.软件故障.网络故障和系统故障)影响数据库系统的操作,影响数据库中数据的正确性,甚至破坏数据库,使数据库中全部或部分数据丢失,整个系统都将处于瘫痪状态.因此,如何

  • 轻松做好Windows 2000安全策略

    为大家介绍一些常用的设置方法来为Windows 2000系统进行安全策略的设置从而起到安全保障的作用. 一.安全策略 Windows 2000系统本身就有很多安全方面的漏洞,这是众所周知的.通过打补丁的方法可以减少大部分的漏洞,但是并不能杜绝一些小漏洞,而往往这些小漏洞也是导致被攻击或入侵的重要途径.Windows 2000中自带的"本地安全策略"就是一个很不错的系统安全管理工具.这个工具可以说是系统的防卫工具往往一些必要的设置就能起到防范的作用,可别小看这个工具.下面就为大家介绍一些

  • 用“本地安全策略”保护系统安全

    Windows XP系统自带的"本地安全策略"是一个很不错的系统安全管理工具,利用好它可以使我们的系统更安全. 首先,我们就来说一下如何启动"本地安全策略".单击"控制面板" "管理工具" "本地安全策略"后,会进入"本地安全策略"的主界面.在此可通过菜单栏上的命令设置各种安全策略,并可选择查看方式,导出列表及导入策略等操作. 接下来我们来探讨一下"本地安全策略" 的

  • 利用Window自带Ipsec安全策略对服务器进行安全加固

    说明:所有服务器上操作,请谨慎操作.确定后再次进行实施!仅仅是保护线路上的安全,以及网站被攻击后,客户端无法远程. Ipsec安全策略 方法:设置安全策略.采用window的IPSec进行防护.允许80 3306端口.拒绝所有其他端口连接. 1:控制面板-系统和安全-管理工具-本地安全策略 打开本地安全策略.默认是没有的.这里我已经添加一个策略. 右键属性,直接点击添加 需要注意,该安全策略的排序方法是以英文字母数字类型来排序的.a开头在下边(首次不设置为拒绝,只允许) 鉴于是客户端访问固定服务

  • Windows Server 2008 R2常规安全设置及基本安全策略

    用的腾讯云最早选购的时候悲催的只有Windows Server 2008 R2的系统,原来一直用的Windows Server 2003对2008用起来还不是非常熟练,对于一些基本设置及基本安全策略,在网上搜了一下,整理大概有以下17个方面,如果有没说到的希望大家踊跃提出哈! 比较重要的几部 1.更改默认administrator用户名,复杂密码 2.开启防火墙 3.安装杀毒软件 1)新做系统一定要先打上补丁 2)安装必要的杀毒软件 3)删除系统默认共享 4)修改本地策略-->安全选项 交互式登

  • 用批处理设置IP安全策略的代码

    以下内容只有回复后才可以浏览 ipseccmd -w REG -p "XIAOWANG" -r "Block ICMP" -f *+0:ICMP -n BLOCK -x 开网上邻居.bat 复制代码 代码如下: ipseccmd -w REG -p "XIAOWANG" -r "Block TCP/80" -f *+0:80:TCP -n PASS -x ipseccmd -w REG -p "XIAOWANG&qu

  • javaWeb 四大域对象详细介绍

    javaWeb 四大域对象 1)和属性相关的方法 Object getAttribute(String name) 获取指定的属性 Enumeration getAttributeNames() 获取所有的属性的名字组成的Enumeration对象 void removeAttribute(String name) 移除指定的属性 void setAttribute(String name, Object o) 设置属性 2)含有以上属性方法的域对象 pageContext,request,se

  • Oracle数据库安全策略

    正在看的ORACLE教程是:Oracle数据库安全策略. 随着计算机网络应用的普及和提高,Oracle数据库应用在各个领域日新月异,它性能优异,操作灵活方便,是目前数据库系统中受到广泛青睐的几家之一.然而,随着应用的深入,数据信息的不断增加,数据库的安全性问题已提到了一个十分重要的议事日程上,它是数据库管理员日常工作中十分关注的一个问题.由于计算机软.硬件故障,导致数据库系统不能正常运转,造成大量数据信息丢失,甚至使数据库系统崩溃.为此,笔者围绕如何保证Oracle数据库具有较高的安全性,使数据

随机推荐