PHP判断变量是否存在并且己赋值安全的写法

原创 2011年01月22日 17:23:00

PHP编程中,我们会经常遇到需要判断一个变量($_GET,$_POST,$_REQUEST)是否存在并且是否有赋值。这个时候如果我们不小心去写,那么就有可能会导致注入式漏洞的产生。特别是涉及到数据库操作的时候,这种行为就更加明显。

下面通过一个实例来讲解如何书写正确的语句,规避潜在的可能产生的漏洞。我们需要获取$_GET['id']的值,为下面的数据库查询做准备。

<?php
$id = 0;
if(isset($_GET['id']) && !empty($_GET['id']))
{
	$id = intval($_GET['id']);
}
if($id < 0)
{
	$id = 0;
}
?>

intval强制转换成数字的问题。数字大于2147483647会出现溢出出现负数,但是在一般情况下,数字不会超过这么大。所以 按照上面的写法 ,应该是没问题 的。

先给$id变量设一个值,为0,接下来判断$_GET['id']是否有设置,并判断下是否为空值。如果不为空,就取整数,如果为负数,就是溢出的情况 ,给它强制性设为0.这样就能确保后面所得的$id值为安全值,不存在除整数外其它的情况出现。

如果是字符串类型的变量,在插入数据库之前,要用mysql_real_escape_string方法处理下字符串,避免注入式漏洞。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

PHP判断变量是否存在及函数isset() 、empty()与is_null的区别

一、举例说明 A.如何判断一个变量是否定义? <?php // 假设不存在$test 变量 if (isset($test)) { echo '$test 已经set', ''; } else {...

PHP判断变量是否存在及函数isset() 、empty()与is_null的区别

PHP判断变量是否存在及函数isset() 、empty()与is_null的区别 作者:php-note.com  发布于:2014-01-16 21:16  分类:PHP基础  浏览(8...
  • FeBr2
  • FeBr2
  • 2016-03-24 20:21
  • 282

PHP安全编程:register_globals的安全性 全局变量注册

如果你还能记起早期Web应用开发中使用C开发CGI程序的话,一定会对繁琐的表单处理深有体会。当PHP的register_globals配置选项打开时,复杂的原始表单处理不复存在,公用变量会自动建立。它...

关于php必须谨慎处理变量和调用内置函数的几点总结,否则会带来安全方面的灾难

php 安全 变量处理 函数调用

jquery判断一个文件是否存在函数写法的历程

第一次的写法: function Exists(url) {         $.ajax({         url:...
  • sxf359
  • sxf359
  • 2017-02-16 17:09
  • 1653

PHP中如何检测一个值为null的变量是否存在

检测变量是否,通常想到的是使用isset()函数,但是

PHP 判断变量是否为空 empty() 函数

关于 empty() empty() 用于检查一个变量是否为空。如果变量是非空或非零的值,则 empty() 返回 FALSE。换句话说,""、0、"0"、NULL、FALSE、array()、va...

PHP-变量(一)(变量赋值、判断变量是否为空,变量删除,可变变量等)

1.php 中变量的含义 2.变量如何赋值: = 3.判断变量是否存在: isset() 4.判断变量是否为空: empty() 5.变量删除: unset() 6.可变变量: $$name

PHP匿点源码之变量赋值与引用

首先需要知道一个数据结构: 直接上例子: <?php $a = 1; xdebug_debug_zval('a'); $b = &$a; xdebug_debug_zval('a'); $c...

php的三种变量赋值方式

php语言有三种变量的赋值方式,传值赋值,引用赋值,计数赋值。 传值赋值: php变量其实就是一个地址的别名而已,如同$a就是一个内存中的地址的别名,比如是0x000011,$b就是另一个...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)