PHP 编程安全性小结

 更新时间:2010年01月08日 23:53:44   作者:  
PHP 编程安全性小结,这4个小技巧,大家可以参考一些成熟的cms程序。如dedecms等
规则 1:绝不要信任外部数据或输入

  关于 Web 应用程序安全性,必须认识到的第一件事是不应该信任外部数据。外部数据(outside data) 包括不是由程序员在 PHP 代码中直接输入的任何数据。在采取措施确保安全之前,来自任何其他来源(比如 GET 变量、表单 POST、数据库、配置文件、会话变量或 cookie)的任何数据都是不可信任的。

  对用户输入进行清理的一个简单方法是,使用正则表达式来处理它。

  规则 2:禁用那些使安全性难以实施的 PHP 设置

  已经知道了不能信任用户输入,还应该知道不应该信任机器上配置 PHP 的方式。例如,要确保禁用 register_globals。如果启用了 register_globals,就可能做一些粗心的事情,比如使用 $variable 替换同名的 GET 或 POST 字符串。通过禁用这个设置,PHP 强迫您在正确的名称空间中引用正确的变量。要使用来自表单 POST 的变量,应该引用 $_POST['variable']。这样就不会将这个特定变量误会成 cookie、会话或 GET 变量。

  要 检查的第二个设置是错误报告级别。在开发期间,希望获得尽可能多的错误报告,但是在交付项目时,希望将错误记录到日志文件中,而不是显示在屏幕上。为什么 呢?因为恶意的黑客会使用错误报告信息(比如 SQL 错误)来猜测应用程序正在做什么。这种侦察可以帮助黑客突破应用程序。为了堵住这个漏洞,需要编辑 php.ini 文件,为 error_log 条目提供合适的目的地,并将 display_errors 设置为 Off。

  规则 3:如果不能理解它,就不能保护它

  一些开发人员使用奇怪的语法,或者将语句组织得很紧凑,形成简短但是含义模糊的代码。这种方式可能效率高,但是如果您不理解代码正在做什么,那么就无法决定如何保护它。

  规则 4:“纵深防御” 是新的法宝

  即使使用 PHP regex 来确保 GET 变量完全是数字的,仍然可以采取措施确保 SQL 查询使用转义的用户输入。

  纵深防御不只是一种好思想,它可以确保您不会陷入严重的麻烦。

相关文章

  • php 解决扫描二维码下载跳转问题

    php 解决扫描二维码下载跳转问题

    这篇文章主要介绍了php 解决扫描二维码下载跳转问题的相关资料,需要的朋友可以参考下
    2017-01-01
  • 用php获取远程图片并把它保存到本地的代码

    用php获取远程图片并把它保存到本地的代码

    Function: 获取远程图片并把它保存到本地 确定您有把文件写入本地服务器的权限变量说明: $url 是远程图片的完整URL地址,不能为空。 $filename 是可选变量: 如果为空,本地文件名将基于时间和日期 自动生成.
    2008-04-04
  • 标准PHP的AES加密算法类

    标准PHP的AES加密算法类

    AES是分组密钥,算法输入128位数据,密钥长度也是128位。用Nr表示对一个数据分组加密的轮数(加密轮数与密钥长度的关系如表1所列)。每一轮都需要一个与输入分组具有相同长度的扩展密钥Expandedkey(i)的参与。
    2015-03-03
  • php中get_object_vars()方法用法实例

    php中get_object_vars()方法用法实例

    这篇文章主要介绍了php中get_object_vars()方法用法,实例分析了get_object_vars()方法获取对象中属性的使用技巧,需要的朋友可以参考下
    2015-02-02
  • php设置允许大文件上传示例代码

    php设置允许大文件上传示例代码

    用Nginx做为代理服务器, 后端为 apache2. 设置允许上传最大为100M的文件,需要的朋友可以参考下
    2014-03-03
  • php 获取远程网页内容的函数

    php 获取远程网页内容的函数

    获取远程网页内容的php函数
    2009-09-09
  • 使用php实现快钱支付功能(涉及到接口)

    使用php实现快钱支付功能(涉及到接口)

    本篇文章是对使用php实现快钱支付功能的代码进行了详细的分析介绍,需要的朋友参考下
    2013-07-07
  • PHP加密解密实例分析

    PHP加密解密实例分析

    这篇文章主要介绍了PHP加密解密实现方法,结合实例形式分析了PHP自定义函数实现字符串加密与对应解密的相关技巧,需要的朋友可以参考下
    2015-12-12
  • php使用fputcsv实现大数据的导出操作详解

    php使用fputcsv实现大数据的导出操作详解

    这篇文章主要介绍了php使用fputcsv实现大数据的导出操作,结合实例形式详细分析了PHP百万级数据的插入以及使用fputcsv进行大数据的导出相关操作技巧,需要的朋友可以参考下
    2020-02-02
  • PHP的可变变量名的使用方法分享

    PHP的可变变量名的使用方法分享

    有时候可变的变量名会给编程带来很大的方便。也就是说变量名可以被动态的命名和使用
    2012-02-02

最新评论