20150117--SQL注入+验证码类-02

本文详细介绍如何通过验证码来防止SQL注入攻击,并提供了验证码类的设计思路及其实现步骤,包括生成验证码图片、验证用户输入等内容。
制作验证码

与图片处理步骤一样,但是字符串随机生成即可。

clip_image002

中文写入

要使用中文,必须满足两个条件:必须要有字体文件,只能使用imagettftext函数

array imagettftext ( resource $image , 字体大小, 旋转角度 ,起始x , 起始y , 颜色 , 文字字体 ,文字 )

clip_image004

封装验证码类

1. 在前台的公共文件夹中建立一个验证码类:/includes/Captcha.class.php

clip_image006

2. 增加属性:长,宽,字体大小,字符串长度,干扰点数量,干扰线的数量

clip_image008

3. 初始化属性:构造方法

a) 配置文件中增加验证码的配置项。/config/config.php

clip_image010

b) 初始化的时候,使用配置文件中的默认值。/includes/Captcha.class.php

clip_image012

4. 产生验证码图片

a) 干扰线的制作

imageline:给指定的画布增加线段

bool imageline ( resource $image , int $x1 , int $y1 , int $x2 , int $y2 , int $color )

clip_image014

b) 干扰点的制作

bool imagesetpixel ( resource $image , int $x , int $y , int $color ),增加干扰点

clip_image016

c) 增加验证码文字

clip_image018

项目应用验证码

1. 图片必须存放到img标签中,才能与其他表单元素一起存在,因此需要在登录界面增加一个img标签用于存放验证码。/admin/templates/login.html

clip_image020

2. img标签必须得到图片内容,必须要有src属性,必须请求权限文件。/admin/templates/login.html

clip_image022

3. 接收请求,处理请求。/admin/privilege.php?act=captcha

clip_image024

4. 直接使用验证码类的对象去产生验证码图片就行。/admin/privilege.php?act=captcha

clip_image026

5. 验证验证码信息:用户提交与服务器生成进行比较

a) 保证服务器生成的验证码能够跨脚本:在生成验证码的时候将验证码存放到session中。/includes/Captcha.class.php

clip_image028

b) 接收用户提交的验证码数据。/admin/privilege.php?act=check

clip_image030

c) 验证码的合法性验证。/admin/privilege.php?act=check

clip_image032

d) 验证码的有效性验证。/admin/privilege.php?act=check

新增验证码验证方法:/includes/Captcha.class.php

clip_image034

调用验证方法验证:/admin/privilege.php?act=check

clip_image036

6. 将session开启放到init文件中,因为后台所有的界面都需要使用session。/admin/includes/init.php

clip_image038

7. 点击验证码图片更新验证码。通过js事件改变img的src属性。/admin/templates/login.html

能够让浏览器发起请求的原理:当前的url与之前的url不同了

clip_image040

商品分类

数据表设计

所有的商品分类都是同样的信息,同时还应该能够区分出谁是谁的子类

可以通过每条记录增加一个字段,字段叫做父级分类,保存父级分类的id即可。

clip_image042

posted on 2016-04-21 23:46  山山未迟 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/lifushan/p/5419466.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值