什么是表单
表单在网页中注意负责数据采集功能。
一个表单有三个基本组成部分
- 表单标签:这里面包含了处理表单数据所用CGI程序的URL以及数据提交到服务器的方法.
<fomr action="URL" method="GET/POST" enctype="multipart/form-data">`
属性 | 值 | 描述 |
---|---|---|
action | URL | 表单提交的目的地 |
method | GET | 最佳传输性能,传输内容短,能直接在URL中看到传输内容 |
POST | 传输性能低,传输内容多,无法在URL中看到传输内容。 | |
atrget | _blabk | 在新窗口中打开 |
_self | 默认。在相同的框架中打开 | |
_parent | 在父框架中打开 | |
_top | 在整个窗口中打开 | |
enctype | app;ication/x-www-form-urlencoded | 在发送前编码所有字符(默认) |
multipart/form_data | 不对字符编码,在使用包含文件上传控件的表单时,必须使用该值。 | |
text/planin | 空格转换为“+”加号,但不对特殊字符编码 |
-
表单域:包含了文本框、密码框、隐藏域、多行文本框、复选框、单选框、下拉选择框和文件上传框等
-
表单按钮:包含提交按钮。复位按钮和一般按钮;用于将数据传送到服务器上的CGI脚本或者取消输入,还可以有表单按钮来控制其他定义了处理脚本的处理工作。
接受并验证表单
接受表单:
- GET方式提交:$_GET(数组)
- POST方式提交(普通数据):$_POST(数组)
- POST方式提交(文件):$_FILES(数组)
验证表单:
判断一个过程是否合法
-
数据长度:
-
数据类型:
-
是否存在敏感内容(stepos函数)
-
数据特征(正则表达式)
简单预防
常见恶意字符串:
单引号(’)空格()注释(/ 、 /、–)条件判断(=、<、>、!=)SQL关键字(and or not)
建议:转义、编码、删除
处理方式 | 处理结果 |
---|---|
转义 | SELECT * FROM news WHERE id=‘1’\ \A\N\D\ ‘1’=‘1’ |
编码 | SELECT * FROM news WHERE id='1%27%20%42%4e%44%20%271%27=%271‘’ |
删除(替换) | SELECT * RFOM news WHERE id=‘1’ |
学习完成后要求:
制作一个登陆表单
能语法一些简单的SQL注入。如:单引号闭合导致的注入漏洞