PHP万能密码
对PHP安全方面的资料作了些收集和查阅,PHP注入首当其冲,一篇神秘小强的PHP万能密码写得不错,摘录:
说实话如果一个网站的前台都是注入漏洞,那么凭经验,万能密码进后台的几率基本上是百分之百。
可是有的人说对PHP的站如果是GPC魔术转换开启,就会对特殊符号转义,就彻底杜绝了PHP注入。其实说这话的人没有好好想过,更没有尝试过用万能密码进PHP的后台。其实GPC魔术转换是否开启对用万能密码进后台一点影响也没有。如果你用这样的万能密码'or'='or',当然进不去,理由是GPC开启的时候单引号会被转换。
PHP注入时我常用的PHP万能密码是:
'or 1=1/*.
那我们分析一下为什么这可以进后台。
如果SQL语句这样写:
"SELECT * from admin where name='".$_POST['name']."'and password='".$_POST['password']."'"
那我们在帐号处输入万能密码'or 1=1/*,密码随便输,sql语句就成了:
SELECT * from admin where name=''or 1=1/*' and password='任意字符'
/*为mysql的注释符,这样后面的东西就都被注释掉了,也就是为什么密码随便输的原因。
假设GPC转换没有开启,那么请看:where name=''or 1=1(*/后面的东西被注释掉了),name='' 的逻辑值为假,而后面的1=1逻辑值则为真,对于整体就成了假 or 真,最终的逻辑值还是真,就进后台了。
那么如果GPC转换开启了,就对单引号进行了转换。语句就变成了:where name='\'or 1=1(*/后面的东西被注释掉了),在看一下和刚才有什么区别,无非是多了个\。name='\'与name=''的逻辑值一样,都为假,那1=1为真,总的sql语句的逻辑值不还是真吗?那有进不去后台的理由吗?
所以总的来说,php网站的万能密码可以这样写:'or 1=1/*,而GPC转换是否开启对它没有任何影响!
所以请改变你的想法:存在字符型注入的PHP网站是可以用万能密码'or 1=1/*的。
------
防止PHP万能密码注入,记得过滤接收字符串中的单引号和*号。
相关文档:
在PHP5类中继续使用cons修饰常量。我们使用const定义一个常量,定义的这个常量不能被改变。在PHP5中const定义的常量与定义变量的方法不同,不需要加$修饰符。 const PI = 3.14; 这样就可以。
而使用const 定义的常量名称一般都大写,这是一个约定,在任何语言中都是这样。
如果定义的常量由多个单词组成,使用 _ 连接, ......
PHP是弱类型语言,向方法传递参数时候也不太区分类型。这样的使用会引起很多的问题,PHP开发者认为,这些问题应该是由代码书写者在书写代码时进行检验以避免。没有类型提示很危险。
<?php
class NormalUser
{
/*
* 其它相关代码..省略........
*/
private $age;
public function setAge($_age) {
$this- ......
http://blog.csdn.net/microji/archive/2008/12/19/3551042.aspx
做一个首页调用图像,有时候往往需要获得固定大小的图像,因为首页的图像位置通常由设计人员指定好了,如果是做最新发布图像调用,因为不知道客户会上传什
么比例的图像,所以,有时候也就没有办法确定图像的比例,前台页面编写人员通常会采用固定 i ......
一.环境的安装
下载安装包,Google上搜索php+apache+sql的安装包并安装。
二.扩展编程
针对在PHP环境下掉用C编程(c程序编译的dll),主要有以下两种方式。
1.利用ATL构建DLL组件,然后再PHP里面直接调用,调用方法 ......
环境软件版本介绍:
APACHE 2.0.59
PHP5.2.3
MYSQL5.0.45
GD-2.0.35
Zend Optimizer v3.3.0
&n ......