PHP的5个安全措施小结

 更新时间:2012年07月17日 20:52:18   作者:  
多年来,PHP一直是一个稳定的、廉价的运行基于web应用程序的平台。像大多数基于web的平台一样,PHP也是容易受到外部攻击的
开发人员、数据库架构师和系统管理员在部署PHP应用程序到服务器之前都应该采取预防措施。大部分预防措施可以通过几行代码或者把应用程序设置稍作调整即可完成。

  #1:管理安装脚本

  如果开发人员已经安装了一套第三方应用程序的PHP脚本,该脚本用于安装整个应用程序的工作组件,并提供一个接入点。大多数第三方软件包都建议在安装后,删除该目录包含的安装脚本。但开发人员希望保留安装脚本,他们可以创建一个.htaccess文件来控制管理访问目录。

  AuthType Basic

  AuthName “Administrators Only”

  AuthUserFile /usr/local/apache/passwd/passwords

  Require valid-user

  任何未经授权的用户,如果试图访问一个受保护的目录,将会看到一个提示,要求输入用户名和密码。密码必须匹配指定的“passwords”文件中的密码。

  #2:头文件

  在很多情况下,开发人员可以将分布在应用程序的几个脚本包含进一个脚本里。这些脚本将包含一个“include”指令,集成单个文件到原始页面的代码里。当“include”文件包含敏感信息,包括用户名、密码和数据库访问密钥时,该文件的扩展名应该命名成“.php ",而不是典型的“.inc”扩展。“.php”扩展确保php引擎将处理该文件,并防止任何未经授权的访问。

  #3: MD5 vs. SHA

  在某些情况下,用户最终会创建自己的用户名和密码,而站点管理员通常会对表单提交的密码加密,并保存在数据库中。在过去的几年中,开发人员会使用MD5(消息摘要算法)函数,加密成一个128位的字符串密码。今天,很多开发人员使用SHA-1(安全散列算法)函数来创建一个160位的字符串。

  #4: 自动全局变量

  php.ini文件中包含的设置称为“register_globals”。P服务器会根据register_globals的设置,将会为服务器变量和查询字符串自动创建全局变量。在安装第三方的软件包时,比如内容管理软件,像Joomla和Drupal,安装脚本将引导用户把register_globals设置为“关闭”。将设置改变为“关闭”可以确保未经授权的用户无法通过猜测变量名称及验证密码来访问数据。

  #5: 初始化变量和值

  许多开发人员都落入了实例化变量不赋值的陷阱,原因可能由于时间的限制而分心,或缺乏努力。身份验证过程中的变量,应该在用户登录程序开始前就有值。这个简单的步骤可以防止用户绕过验证程序或访问站点中某些他们没有权限的区域

相关文章

  • PHP开发规范手册之PHP代码规范详解

    PHP开发规范手册之PHP代码规范详解

    对于PHP入门学习的童鞋来说,了解PHP开发规范可以少走很多弯路,网上各种PHP开发规范也很多,我结合自身使用PHP的情况,来说说我所理解的PHP开发规范。
    2011-01-01
  • PHP下10件你也许并不了解的事情

    PHP下10件你也许并不了解的事情

    PHP 是我用过的语言中,最令人恼火的但同时也是最有趣的语言。我之所以说“令人恼火”主要是因为函数命名极其不一致。尽管我每天都要用到这些函数,我还是要想一下“究竟是 str_pos 还是 strpos?是 str_split 还是 strsplit?”。
    2008-09-09
  • php中让上传的文件大小在上传前就受限制的两种解决方法

    php中让上传的文件大小在上传前就受限制的两种解决方法

    本篇文章是对php中让上传的文件大小在上传前就受限制的两种解决方法进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • php在数组中查找指定值的方法

    php在数组中查找指定值的方法

    这篇文章主要介绍了php在数组中查找指定值的方法,实例分析了php中array_search函数查找数组指定值的使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03
  • PHP 编写大型网站问题集

    PHP 编写大型网站问题集

    是否容易维护、是否足够健壮、否效率足够高、是否足够安全,当PHP用于建立大型网站时这些就成为很关键的因素。
    2010-05-05
  • php将csv文件导入到mysql数据库的方法

    php将csv文件导入到mysql数据库的方法

    这篇文章主要介绍了php将csv文件导入到mysql数据库的方法,通过读取csv文件到数组再调用while循环实现插入数据到数据库,是非常实用的技巧,需要的朋友可以参考下
    2014-12-12
  • 如何使用php绘制在图片上的正余弦曲线

    如何使用php绘制在图片上的正余弦曲线

    本篇文章是对使用php绘制在图片上的正余弦曲线的方法进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • php简单实现sql防注入的方法

    php简单实现sql防注入的方法

    这篇文章主要介绍了php简单实现sql防注入的方法,涉及addslashes函数的使用及正则过滤的相关技巧,非常简单实用,需要的朋友可以参考下
    2016-04-04
  • EarthLiveSharp中cloudinary的CDN图片缓存自动清理python脚本

    EarthLiveSharp中cloudinary的CDN图片缓存自动清理python脚本

    这篇文章主要介绍了EarthLiveSharp暂时没有清理cloudinary的CDN图片缓存的功能,于是我用python写了一个,并尝试用gist管理,需要的朋友可以参考下
    2017-04-04
  • php强制更新图片缓存的方法

    php强制更新图片缓存的方法

    这篇文章主要介绍了php强制更新图片缓存的方法,实例分析了php结合javascript方法实现针对图片缓存的强制更新功能,非常具有实用价值,需要的朋友可以参考下
    2015-02-02

最新评论