使用系统命令是一项危险的操作,尤其在你试图使用远程数据来构造要执行的命令时更是如此。如果使用了被污染数据,命令注入漏洞就产生了。
exec()是用于执行shell命令的函数。它返回执行并返回命令输出的最后一行,但你可以指定一个数组作为第二个参数,这样输出的每一行都会作为一个元素存入数组。使用方式如下:
<?php
$last = exec('ls', $output, $return);
print_r($output);
echo "Return [$retu...
php打开远程文件的方法和风险及解决方法
本文讲的是php打开远程文件的使用方法,还有使用风险和解决方法。
PHP有一个配置选项叫allow_url_fopen,该选项默认是有效的。它允许你指向许多类型的资源,并像本地文件一样处理。例如,通过读取URL你可以取得某一个页面的内容(HTML),看下面的代码:
<?php
$contents = file_get_contents('https://www.phpfensi.com/');
?>
当被污染数据用于include和require的文件指向时,会产生严重漏洞。实...
php后门URL的防范
后门URL是指虽然无需直接调用的资源能直接通过URL访问,例如,下面WEB应用可能向登入用户显示敏感信息:
<?php
$authenticated = FALSE;
$authenticated = check_auth();
if ($authenticated)
{
include './sensitive.php';
}
?>
由于sensitive.php位于网站主目录下,用浏览器能跳过验证机制直接访问到该文件。这是由于在网站主目录下的所有文件都有一个相应的URL地址。在某些情况下,这些脚...
php session劫持和防范的方法
session 数据暴露
会话数据常会包含一些个人信息和其它敏感数据。基于这个原因,会话数据的暴露是被普遍关心的问题。一般来说,暴露的范围不会很大,因为会话数据是保存在服务器环境中的,而不是在数据库或文件系统中。因此,会话数据自然不会公开暴露。
使用SSL是一种特别有效的手段,它可以使数据在服务器和客户端之间传送时暴露的可能性降到最低。这对于传送敏感数据的应用来说非常重要。SSL在HTTP之上...
程序员:能花钱的,就不要花时间
如果要寻找这个星球上最抠门的群体,那么一定非程序员们莫属了,有个笑话是找对象要找程序员:『挣得多,花的少;常加班,死的早』.
在创业之前,我也是个抠门的主,公司给配笔记本,就绝不自己买,一个N73用三年如果不是丢了就不会买新的,东西永远是够用就好,而不管是否在技术上已经落伍;为了找一款软件的sn,我可以花上一个小时,不厌其烦地注册有sn的论坛,攒积分下载,尽管该软件的正版价也就几十人民币.
值得庆幸的...
PHP中spl_autoload_register函数的用法总结
spl_autoload_register
(PHP 5 >= 5.1.2)
spl_autoload_register — 注册__autoload()函数
说明
bool spl_autoload_register ([ callback $autoload_function ] )
将函数注册到SPL __autoload函数栈中。如果该栈中的函数尚未激活,则激活它们。
如果在你的程序中已经实现了__autoload函数,它必须显式注册到__autoload栈中。因为 spl_autoload_register()函数会将Zend Engine中的__autoload函数取代为spl...
php使用mb_check_encoding检查字符串在指定的编码里是否有效
mb_check_encoding — 检查字符串在指定的编码里是否有效
PHP 版本要求: (PHP 4 >= 4.4.3, PHP 5 >= 5.1.3)
说明:bool mb_check_encoding ([ string $var = NULL [, string $encoding = mb_internal_encoding() ]] )
检查指定的字节流在指定的编码里是否有效。它能有效避免所谓的“无效编码攻击(Invalid Encoding Attack)”。
参数
var
要检查的字节流。如果省略了这个参数,此函数会检查所有来自最...
PHP 5.5 创建和验证哈希最简单的方法详解
最近 PHP 5.5.0 发布了,并带来了一份完整的全新特性与函数的列表。全新API之一就是Password Hashing API.它包含4个函数:password_get_info(), password_hash(), password_needs_rehash(),和password_verify().让我们分步来了解每个函数
我们首先讨论password_hash()函数。这将用作创建一个新的密码的哈希值。它包含三个参数:密码、哈希算法、选项。前两项为必须的。你可以根据下面的例子来使用这个函数...
php cookie使用方法学习笔记分享
在php中cookie与其它程序中没什么两样,cookie都是用来存储信息到客户端,常用用于安全性要求不高的一些应用中,如用户登录记住密码之类的,下面我来给大家介绍一下php cookie学习笔记。
PHP setcookie() 函数向客户端发送一个 HTTP cookie。cookie 是由服务器发送到浏览器的变量。cookie 通常是服务器嵌入到用户计算机中的小文本文件。每当计算机通过浏览器请求一个页面,就会发送这个 cookie。cookie 的...
PHP输出当前进程所有变量/常量/模块/函数/类的示例
1. get_defined_vars (PHP 4 >= 4.0.4, PHP 5) — 获取由所有已定义变量所组成的数组
array get_defined_vars ( void )
此函数返回一个包含所有已定义变量列表的多维数组,这些变量包括环境变量、服务器变量和用户定义的变量。
<?php
echo '<pre>';
$b = array(1,1,2,3,5,8);
$arr = get_defined_vars();
// 打印 $b
print_r($arr["b"]);
// 打印所有服务器变量
print_r($arr["_SERVER"]);
/...