惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
Darknet – Hacking Tools, Hacker News & Cyber Security
Jina AI
Jina AI
博客园_首页
J
Java Code Geeks
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 司徒正美
Hugging Face - Blog
Hugging Face - Blog
S
SegmentFault 最新的问题
MyScale Blog
MyScale Blog
P
Proofpoint News Feed
L
Lohrmann on Cybersecurity
Forbes - Security
Forbes - Security
大猫的无限游戏
大猫的无限游戏
Vercel News
Vercel News
Y
Y Combinator Blog
Google DeepMind News
Google DeepMind News
The Register - Security
The Register - Security
N
News | PayPal Newsroom
S
Security Archives - TechRepublic
量子位
Cisco Talos Blog
Cisco Talos Blog
V
V2EX
C
Cisco Blogs
The Cloudflare Blog
Stack Overflow Blog
Stack Overflow Blog
L
LangChain Blog
Scott Helme
Scott Helme
S
Securelist
Security Latest
Security Latest
爱范儿
爱范儿
TaoSecurity Blog
TaoSecurity Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
I
Intezer
L
LINUX DO - 最新话题
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
C
Check Point Blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
美团技术团队
Know Your Adversary
Know Your Adversary
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
PCI Perspectives
PCI Perspectives
月光博客
月光博客
T
Tailwind CSS Blog
Cloudbric
Cloudbric
小众软件
小众软件
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
K
Kaspersky official blog
D
DataBreaches.Net
博客园 - 【当耐特】
有赞技术团队
有赞技术团队

博客园 - 银翼

【MySQL】Windows下如何彻底卸载MySQL? 【MySQL】Windows下如何重置root账号密码? 【Java】Task07实验4第5题解析 【辅导】Task12 类的定义与继承练习 【辅导】Task11 如何获取文件上传错误信息 PHP开发环境配置 XAMPP更换Apahce服务端口号 《Web应用开发技术(PHP)》往届学生优秀作业 【辅导】Task19 实现用户登录 主要知识点 【辅导】Task18 更新与插入删除操作 主要知识点 【辅导】Task17 查询数据 主要知识点 【辅导】Task16 使用MySQL数据库 主要知识点 【辅导】Task15 熟悉错误与异常处理 主要知识点 【辅导】Task14 使用正则表达式 主要知识点 【辅导】Task13 使用会话管理 主要知识点(2) 【辅导】Task13 使用会话管理 主要知识点(1) 【辅导】Task12 使用类和对象 主要知识点(2) 【辅导】Task12 使用类和对象 主要知识点(1) 【辅导】Task11 熟悉PHP文件操作 主要知识点
【辅导】Task10 掌握PHP表单处理 主要知识点
银翼 · 2020-03-30 · via 博客园 - 银翼

本任务主要内容在Task05中已经学习过,此处进一步加深并拓展。

1、关于表单中的action属性

在PHP中,表单的action属性若忽略,默认是本网页。

<form method="post">

 

个人认为,前一种方法比后一种方法要好。

2、关于XSS攻击(跨站脚本攻击)

XSS攻击多出现在评论或留言中,通过在文本中插入特意设计的javascript脚本,窃取登录用户的隐私信息,或进行恶意网址转向。

因此,用户的留言,必须要去掉html标记或脚本标记,使得这些脚本无法由浏览器执行。

PHP中通过以下方法来避免脚本攻击,虽只是初级的,但够用了。

(1)html标记转义,使用htmlspecialchars函数或htmlentities函数

(2)去除反斜杠(\),反斜杠(\)在javascript中用于字符转义。

(3)必要时,压缩文本首尾空格。trim

3、关于Bootstrap H5表单

   

注意,这些表单控件必须要设置name属性,才能由$_POST变量来获取,获取的是这些控件的value属性的值

多个CheckBox控件时,name属性要用数组标记,如name= "liking[]"。单个ChceckBox控件时则非必须。PHP中通过$_POST["liking"]获得一个由各value值组成的数组。

4、关于正则表达式

Java中,我们介绍过正则表达式,在Task14中,我们也将重新回顾一下正则表达式,学习PHP中的正则表达式函数。对于正则表达式中常用语法要掌握。

 

 思考:如何确定用户由字母组成,至少8位字符? [a-zA-Z0-9]{8,}

对于邮件认证,可以使用正则表达式(好处是具体要求可自已定义),也可以使用PHP的邮件过滤器函数(以RFC 822为标准):

 

思考:这个函数可以使用哪些过滤器?(查阅PHP.NET)

5、关于表单数据跨网页处理

客户端发起一个http请求,服务端返回数据,则该次http请求结束。无法对客户端的多次http请求进行跟踪,http的无状态性(Stateless)是指服务端无法对同一客户端的多次http请求进行跟踪。

GET表单通过URL中的查询字符串传输数据,POST表单通过http请求数据包的header部分进行传输。但都只能通过action的网页传输一次。

像本任务中的用户注册的例子,register.php网页获取POST表单数据,验证其合法性后,需要再传给另外一个网页进行处理(如负责将数据写入数据库)则很难处理。

本任务中提供2种思路:

一是构造隐藏表单,通过javascript自行提交给另一网页处理。不多见。

二是存储在Session中,常见。存储在Session中的数据,本网站的所有网页均可读写。关于Session与Cookie的具体应用,Task13中会详细介绍。

6、关于实验7

实验7实际上就是让你照着任务10中的例子,在自己的计算机上实践一遍。再进一步,这个表单由哪些要填报的数据项进行组成,你可自己独立去设计一个不同的。

比如:你也来设计一个用于每日疫情信息填报的表单?