content top

PHP内置函数intval()使用不当的安全漏洞分析

一、描述

intval函数有个特性:”直到遇上数字或正负符号才开始做转换,再遇到非数字或字符串结束时()结束转换”,在某些应用程序里由于对intval函数这个特性认识不够,错误的使用导致绕过一些安全判断导致安全漏洞.

二、分析

PHP_FUNCTION(intval)

{

zval **num, **arg_base;

int base;

 

PHP cURL快速入门

cURL 是一个利用URL语法规定来传输文件和数据的工具,支持很多协议,如HTTP、FTP、TELNET等。更让人高兴的是,PHP也支持 cURL 库。本文将介绍PHP中如何运用它。

基本结构

先来看一下在PHP中建立cURL请求的基本步骤:

  1. 初始化
  2. 设置变量
  3. 执行并获取结果
  4. 释放cURL句柄

// 1. 初始化

$ch = curl_init();

// 2. 设置选项,包括URL

curl_setopt($ch, CURLOPT_URL, “http://www.nettuts.com”);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_HEADER, 0);

// 3. 执行并获取HTML文档内容

$output = curl_exec($ch);

// 4. 释放curl句柄

curl_close($ch);

 

PHP 全局变量global详解

开发一个PHP程序,不可避免的要使用到全局数据.

全局变量便是其中之一,当然这个观点颇具争议,有许多人还是建议禁用全局变量,使用不当对造成程序的可读性很差!结构混乱,调试更是一头雾水,但是不可否认他的便捷,这便是php为什么会用全局变量global原因吧!…

今天就遇到了php 全局变量不起作用的问题.

先上一段简单的代码:

<?php
$a = 0 ;
function Test()
{
$a =1;
}
Test();
echo $a;
?>

上面的代码中输出是0,那是因为函数体Test内$a变量被缺省设置为局部变量,$a的作用域就是在Test内.修改代码如下

<?php
$a = 0 ;
function Test()
{
 global $a;//申明函数体Test内使用的$a变量为global全局变量
 $a =1;
}
Test();
echo $a;
?>
 

PHP获取URL完整路径及物理路径

PHP的预定义变量$_SERVER是一个包含头部(headers),路径信息及脚本位置的数组,数组的实体由web服务器创建.

利用$_SERVER数组,我们可以获取URL完整路径及真实路径,让自己随心所欲的运用它们.

$_SERVER['SERVER_NAME'] // 当前运行脚本所在服务器主机的名称.

$_SERVER[SERVER_PORT'] //用户连接到服务器时所使用的端口.

 $_SERVER['REQUEST_URI'] //当前运行脚本除主机名外的请求URL.

$_SERVER['DOCUMENT_ROOT'] //当前运行脚本所在的文档根目录.

举例 URL : http://www.cndong.cn/Test/Test.php

$_SERVER['SERVER_NAME']:  www.cndong.cn

$_SERVER['SERVER_PORT'] : 80

$_SERVER['REQUEST_URI'] : /Test/Test.php

$_SERVER['DOCUMENT_ROOT'] : /home/var/www/cndong.cn/htdocs

 

PHP获取IP地址

今天想得到客户端访客IP…google了一下,分享:
例如测试向东而立IP地址为: 222.190.127.26

<?php
function GetIP() {
    if ($_SERVER["HTTP_X_FORWARDED_FOR"])
        $ip = $_SERVER["HTTP_X_FORWARDED_FOR"];
    else if ($_SERVER["HTTP_CLIENT_IP"])
        $ip = $_SERVER["HTTP_CLIENT_IP"];
    else if ($_SERVER["REMOTE_ADDR"])
        $ip = $_SERVER["REMOTE_ADDR"];
    else if (getenv("HTTP_X_FORWARDED_FOR"))
        $ip = getenv("HTTP_X_FORWARDED_FOR");
    else if (getenv("HTTP_CLIENT_IP"))
        $ip = getenv("HTTP_CLIENT_IP");
    else if (getenv("REMOTE_ADDR"))
        $ip = getenv("REMOTE_ADDR");
    else
        $ip = "Unknown";
    return $ip;
}
echo GetIP();
?>
 
Page 1 of 212
content top