SQL注入基础四---PHP表单验证

本文介绍了表单在网页中的作用及其基本组成部分,并详细讲述了如何使用PHP来接受和验证表单数据。重点讨论了防止SQL注入的安全措施,包括检查数据长度、类型,识别敏感内容,并给出了常见的恶意字符串示例。最后,提出了转义、编码和删除等预防策略,并鼓励读者通过实践制作登录表单来加深对SQL注入的理解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

什么是表单

表单在网页中注意负责数据采集功能。
一个表单有三个基本组成部分

  1. 表单标签:这里面包含了处理表单数据所用CGI程序的URL以及数据提交到服务器的方法.
<fomr action="URL" method="GET/POST" enctype="multipart/form-data">`
属性描述
actionURL表单提交的目的地
methodGET最佳传输性能,传输内容短,能直接在URL中看到传输内容
POST传输性能低,传输内容多,无法在URL中看到传输内容。
atrget_blabk在新窗口中打开
_self默认。在相同的框架中打开
_parent在父框架中打开
_top在整个窗口中打开
enctypeapp;ication/x-www-form-urlencoded在发送前编码所有字符(默认)
multipart/form_data不对字符编码,在使用包含文件上传控件的表单时,必须使用该值。
text/planin空格转换为“+”加号,但不对特殊字符编码
  1. 表单域:包含了文本框、密码框、隐藏域、多行文本框、复选框、单选框、下拉选择框和文件上传框等
    在这里插入图片描述

  2. 表单按钮:包含提交按钮。复位按钮和一般按钮;用于将数据传送到服务器上的CGI脚本或者取消输入,还可以有表单按钮来控制其他定义了处理脚本的处理工作。
    在这里插入图片描述

接受并验证表单

接受表单:

  1. GET方式提交:$_GET(数组)
  2. POST方式提交(普通数据):$_POST(数组)
  3. POST方式提交(文件):$_FILES(数组)
    在这里插入图片描述

验证表单:
判断一个过程是否合法

  1. 数据长度:
    在这里插入图片描述

  2. 数据类型:
    在这里插入图片描述

  3. 是否存在敏感内容(stepos函数)

  4. 数据特征(正则表达式)

简单预防

常见恶意字符串:
单引号(’)空格()注释(/ /、–)条件判断(=、<、>、!=)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注入。如:单引号闭合导致的注入漏洞

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

超级滑稽帝本人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值