前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PHP代码安全策略

PHP代码安全策略

作者头像
luxixing
发布2019-05-29 17:37:55
1.2K0
发布2019-05-29 17:37:55
举报
文章被收录于专栏:luxixing

文件系统安全

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

代码语言:javascript
复制
<?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

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文件系统安全
  • 数据库安全
  • 用户数据过滤
  • 其他安全策略
相关产品与服务
多因子身份认证
多因子身份认证(Multi-factor Authentication Service,MFAS)的目的是建立一个多层次的防御体系,通过结合两种或三种认证因子(基于记忆的/基于持有物的/基于生物特征的认证因子)验证访问者的身份,使系统或资源更加安全。攻击者即使破解单一因子(如口令、人脸),应用的安全依然可以得到保障。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档