从表单接收到$_POST[‘*’]
该信息内容可能包括“”空格 特殊符号
例如 “user” ‘’ ‘’“abc”
$_POST[‘pass’]=“” And (select * from tbl_user)
防注入(攻击)
php安全问题:
1、 注入、
2、 Sql
3、 再用户执行注册中口令使用了类似(select insert delete 等)
4、 Eregi(“正则表达式“,”判断字符串”,“第三个变量”)
5、 Addslashes()\:转义字符
Php
1、 Register_glabals=off|on
2、 $_POST[‘name’]
3、 $name
4、 Sql语句尽量不要省略引号
5、 $_POST[GET COOKIE]过滤后接受
6、 命名数据库
7、 尽量封装方法,尽量避免暴露
8、 重定向
9、 考虑:web项目有多少
10、 过滤的过程写成一个函数单独存储到一个文件
11、 实现过滤接收到的表单数据的功能
12、 写成函数
13、 把带有特殊符号的字符串过滤普通的字符串
14、 定义函数
15、 参数$form:包含调用函数页面中所有input标签
16、 Function check_form($form){
17、 Get_magic_quotes_gpc(void)获取php.ini中magic_quotes_gpc的开启状态
18、 magic_quotes_gpc=on返回true
19、 magic_quotes_gpc=off返回false
20、 if(!Get_magic_quotes_gpc(input数组名)){
21、 for($i=;$i<count($form){
22、 $form[$i]=addslashes($form[$i]);
23、
24、 }
25、
26、 }
27、 需要将多余一个的信息传到外部
28、 第一种:组成字符串
29、 第二种:组成数组
30、
31、 Return $form
32、 }
33、 判断if(magic_quotes_gpc状态on){
34、 Addslashes(表单数据)
35、 “User\ ‘’ ‘’ abc”
36、 删除反斜线
37、 Stripslasshes()
38、 }else{
39、 Addslashes()
40、 }
41、
42、 }
43、
验证码
设计表
Username password status md5name
Zhangsan 123456 0
http://localhost/test.php?name=.........
Name=zhangsan
//判断用户是否点击了提交按钮
If(isset($_POST[‘op’])){
If($_POST[‘op’]==”register”){
Include(“reg.php”);
exit
}
Require ”当前页面”;
两个页面中
也可以在一个页面
<?php
Include(“”);
//调用函数check_form进行过滤
将当前页面form表单的input信息进行过滤
Input的属性分别是edit{name}、edit【pass】
$_POSt[‘edit’]
$form= check_form($_POSt[‘edit’]);
将用户传入的数组$orm拆分成独立的变量
Extract():将数组中的元素转换成独立的变量,元素下=元素值
产生了三个变量$name $pass
变量值为客户输入信息(过)
插入数据表
$sql= “insert into tbl_user values()”;
?>