• PHP安全编程之php.ini配置


    1.register_globals=On
    <?php//ex1.php 
    if(check_admin()) 
    $is_admin=true; 
    if($is_admin) 
    do_something(); 
    ?> 
    这一段代码没有将$is_admin事先初始化为Flase,如果register_globals为On,那么我们直接提交http://www.sectop.com/ex1.php?is_admin=true,就可以绕过check_admin()的验证
    当register_globals=On时,我们提交http://www.sectop.com/ex2.php?_SESSION[username]=admin
     
    2.magic_quotes
    用来让php程序的输入信息自动转义,所有的单引号(“'”),双引号(“"”),反斜杠(“”)和空字符(NULL),都自动被加上反斜杠进行转义magic_quotes_gpc=On用来设置magicquotes为On,它会影响HTTP请求的数据(GET、POST、Cookies)程序员也可以使用addslashes来转义提交的HTTP 请求数据,或者用stripslashes 来删除转义。
    magic_quotes_gpc = On
    对post、get请求、cookie的参数加转义
    addslashes($name) 函数添加的反斜杠,stripslashes($name)删除反斜杠
    http://www.test.com/index.php?is_admin=true&name="sas"
    得到$name = '"\sas"';
    $name = stripslashes($name); $name = '"sas"';
     
    3.safe_mode
    安全模式,PHP用来限制文档的存取、限制环境变量的存取,控制外部程序的执行。启用
    安全模式必须设置php.ini中的safe_mode=On
     
    a、限制文件存取
    safe_mode_include_dir="/path1:/path2:/path3"
    不同的文件夹用冒号隔开
     
    b、限制环境变量的存取
    safe_mode_allowed_env_vars=string
    指定PHP程序可以改变的环境变量的前缀,如:safe_mode_allowed_env_vars=PHP_ ,当这个选项的值为空时,那么php可以改变任何环境变量
    safe_mode_protected_env_vars=string用来指定php程序不可改变的环境变量的前缀。
     
    c、限制外部程序的执行
    safe_mode_exec_dir=string
    此选项指定的文件夹路径影响system、exec、popen、passthru,不影响shell_exec和“``”。
    disable_functions=string
    不同的函数名称用逗号隔开,此选项不受安全模式影响。
  • 相关阅读:
    Linux标准C头文件和内核头文件的理解
    linux GCC编译C程序的问题
    C#类型反射、晚期绑定、特性编程的使用背景与分析
    linux下C#开发mongoDB
    C中“指针和数组”引发的探索一
    C#学习记录
    linux下Apache+PHP+mysql+phpMyAdmin源码包安装配置
    基于mongoDB和C#分布式海量文件存储实验
    C中指针和数组引发的探索二
    算法研究学习一(用C和C#实现)
  • 原文地址:https://www.cnblogs.com/datastack/p/3813961.html
Copyright © 2020-2023  润新知