(安全篇)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

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

 

本文来自投稿,不代表重蔚自留地立场,如若转载,请注明出处https://www.cwhello.com/1382.html

如有侵犯您的合法权益请发邮件951076433@qq.com联系删除

(0)
重蔚重蔚管理团队
上一篇 2016年10月17日 17:25
下一篇 2016年10月18日 22:23

相关推荐

  • (安全篇)php异步执行

    开发中遇到了群发邮件慢的问题,找到了以下方法,还不错分享下: PHP异步执行的常用方式常见的有以下几种,可以根据各自优缺点进行选择: 1.客户端页面采用AJAX技术请求服务器 优点:最简单,也最快,就是在返回给…

    2017年5月25日
    0220
  • php实现签到功能的方法实例分析(附代码)

    今天来学习下php实现签到功能的方法。代码我也分享给大家供大家参考,具体如下: 首先我在数据库里建了两张表,一个是用户的积分表,一个是签到状态表,分来用来记录用户的积分数和先到状态 在用户签到状态表中我们有…

    2018年3月10日
    0238
  • PHP常用函数-(5)php常用的数学函数以及数字处理函数

    abs — 绝对值 acos — 反余弦 acosh — 反双曲余弦 asin — 反正弦 asinh — 反双曲正弦 atan2 — 两个参数的反正切 atan — 反正切 atanh — 反双曲正切 base_convert — 在任意进制之间转换数字 bindec — 二进制转换为十…

    2015年12月7日
    0205
  • PHP入门指南:PHP和MongoDB。

    PHP是一种广泛用于Web开发的编程语言。它的应用范围涉及从简单网页到大型Web应用程序的开发。作为一位Web开发人员,深入了解PHP将能够让您最大限度地利用它的潜力。在本篇文章中,我们将探讨如何使用PHP与MongoDB一…

    2023年5月22日
    03
  • (实用篇)PHP页面跳转到另一个页面的方法总结

    一、用HTTP头信息 也就是用PHP的header函数。PHP里的header函数的作用就是向浏览器发出由HTTP协议规定的本来应该通过WEB服务器的控制指令,例如声明返回信息的类型("Context-type: xxx/xxx"),页面的属性("No cache…

    2016年10月21日
    0328
  • php字符串的常用函数

    字符串分解和合并 说明:在PHP中提供了两个函数可以对字符串进行“拆分”和“组合-数组”,作用是如多选框有多少个值 Explode:把字符串通过一个分割字符进行分割成数组 Implode:把一维数组转换成字符串 去除字符串的空…

    2017年11月20日 PHP自学教程
    0273
  • php字符串处理函数大全

    addcslashes — 为字符串里面的部分字符添加反斜线转义字符 addslashes — 用指定的方式对字符串里面的字符进行转义 bin2hex — 将二进制数据转换成十六进制表示 chop — rtrim() 的别名函数 chr — 返回一个字符的ASCII…

    2018年3月3日
    0288
  • (实用篇)php精确的统计在线人数的方法

    这是一个非常精确的,通过php实现统计在线人数的方法,想知道怎么实现的请耐心阅读。 <?php $filename='online.txt';//数据文件 $cookiename='VGOTCN_OnLineCount';//cookie名称 $onlinetime=600;//在线有效时间…

    2016年10月25日
    0232

联系我们

QQ:951076433

在线咨询:点击这里给我发消息邮件:951076433@qq.com工作时间:周一至周五,9:30-18:30,节假日休息