版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
项目五
安全的个人信息修改Web安全与防护本任务要点学习目标利用PHP实现账户密码修改功能熟悉数据库增删查改的操作方法熟悉PHP数据库交互的功能编写方法任务一
博客系统的功能实现目录CONTENTS01/创建表单02/处理表单提交创建表单01<form
method="post"
action="password_change.php">
<label
for="new_password">新密码</label>
<input
type="password"
name="new_password"
id="new_password"
required>
<br>
<label
for="confirm_password">确认新密码</label>
<input
type="password"
name="confirm_password"
id="confirm_password"
required>
<br>
<button
type="submit">修改口令</button></form>在前端页面上添加一个口令修改表单,其中包括原口令、新密码和确认新密码等字段,用户可以在表单中输入相关信息。处理表单提交02<?phpsession_start();//
验证用户是否已登录if
(!isset($_SESSION['user_id']))
{
header('Location:
login.php');
exit();}
//
处理表单提交if
(isset($_POST['new_password'])
&&
isset($_POST['confirm_password']))
{
$new_password
=
$_POST['new_password'];
$confirm_password
=
$_POST['confirm_password'];//
连接数据库$db
=
new
PDO('mysql:host=localhost;dbname=blog',
'username',
'password');//
检查新密码是否匹配确认密码if
($new_password
===
$confirm_password)
{
//
更新用户的密码
$stmt
=
$db->prepare('UPDATE
users
SET
password
=
?
WHERE
id
=
?');
$stmt->execute([password_hash($new_password,
PASSWORD_DEFAULT),
$_SESSION['user_id']]);
echo
'密码已更新!';}
else
{
echo
'新密码与确认密码不匹配。';}?>在后端服务器端,接收前端发送的口令修改请求,并对用户提交的表单数据进行验证,比如检查新密码和确认新密码是否一致。如果数据验证失败,则返回错误提示;否则,更新用户的密码信息。再将用户输入的新密码进行加密处理,然后更新到数据库中,用于下次用户登录时进行验证。课堂实践一、任务名称:完成博客系统账户密码修改功能二、任务内容:使用PHP开发语言,根据老师讲授的开发思路开发博客系统的账户密码修改功能。三、工具需求:浏览器、Vscode、Apache、MySQL、PHP四、任务要求:完成实践练习后,由老师检查完成情况。课堂思考一、修改密码的功能如何鉴别操作者的身份?二、鉴别操作者的身份后攻击者是否还能操控修改密码的过程?课后拓展:跨站请求伪造请同学们通过互联网检索跨站请求伪造的相关资料,学习并研究跨站请求伪造的原理,下节课会抽点部分同学上来给大家讲解自己研究的成果。THANK
YOUToBeContinued项目五
安全的个人信息修改Web安全与防护本任务要点学习目标理解跨站请求伪造攻击的原理熟悉跨站请求伪造攻击的步骤熟悉跨站请求伪造攻击的特点任务二
跨站请求伪造攻击的原理目录CONTENTS01/CSRF攻击步骤02/CSRF的特点CSRF攻击步骤01(1)攻击者创建一个伪造的请求,该请求在运行时会将10,000美元从特定银行转入攻击者的账户;(2)攻击者将伪造的请求嵌入到超链接中,以批量电子邮件的形式发送出去,并将其嵌入到网站中;(3)受害者点击攻击者放置的电子邮件或网站链接,导致受害者向银行提出转账10,000美元的请求;(4)银行服务器接收到请求,并且由于受害者得到了适当的授权,它将请求视为合法并转移资金。CSRF漏洞成因通常是因为站点Cookie没有过期,网站没有没有进行进一步的验证用户信息,用户在没有任何安全意识的情况下访问了恶意站点。CSRF的特点02CSRF通常是跨域的,因为外域通常更容易被攻击者掌控。但是如果本域下有容易被利用的功能,比如可以发图和链接的论坛和评论区,攻击可以直接在本域下进行,而且这种攻击更加危险。(1)攻击一般发起在第三方网站,而不是被攻击的网站。被攻击的网站无法防止攻击发生。(2)攻击利用受害者在被攻击网站的登录凭证,冒充受害者提交操作;而不是直接窃取数据。(3)整个过程攻击者并不能获取到受害者的登录凭证,仅仅是“冒用”。(4)跨站请求可以用各种方式:图片URL、超链接、CORS、Form提交等等。部分请求方式可以直接嵌入在第三方论坛、文章中,难以进行追踪。课堂实践一、任务名称:理解跨站请求伪造攻击的原理与特点二、任务内容:回顾上一节课的代码是否存在问题三、工具需求:浏览器、Vscode、Apache、MySQL、PHP四、任务要求:小组讨论后轮流进行发言,老师进行点评。课堂思考一、跨站请求伪造属于前端安全问题还是后端安全问题?二、跨站请求伪造能造成什么样的危害?三、跨站请求伪造攻击如何防范?课后拓展:CSRF检测修复请同学们通过互联网检索跨站请求伪造攻击的检测和修复手段,学习并研究跨站请求伪造攻击的检测和修复手段,下节课会抽点部分同学上来给大家讲解自己研究的成果。THANK
YOUToBeContinued项目五
安全的个人信息修改Web安全与防护本任务要点学习目标检测和验证跨站请求伪造漏洞熟悉跨站请求伪造漏洞的检测方法熟悉跨站请求伪造漏洞的利用方法任务三
跨站请求伪造漏洞检测与验证目录CONTENTS01/跨站请求伪造漏洞检测与验证跨站请求伪造漏洞检测与验证01从任务二可知,CSRF攻击是攻击者借助受害者的cookie骗取服务器的信任,但是攻击者并不能拿到cookie,也看不到cookie的内容。另外,对于服务器返回的结果,由于浏览器同源策略的限制,攻击者也无法进行解析。因此,攻击者无法从返回的结果中得到任何东西,他所能做的就是给服务器发送请求,以执行请求中所描述的命令,在服务器端直接改变数据的值,而非窃取服务器中的数据。在本书第2.1章节开发的代码中,代码仅仅验证用户是否已登录,若登记即可以修改口令,也没有验证原口令,所有这里明显存在CSRF漏洞项目五
安全的个人信息修改Web安全与防护本任务要点学习目标对跨站请求伪造漏洞进行修复和防范熟悉跨站请求伪造漏洞的修复防范方法任务四
跨站请求伪造漏洞修复与防范目录CONTENTS01/同源检测02/Samesite
Cookie03/CSRF
Token04/特定情况下的必要验证同源检测01既然CSRF大多来自第三方网站,那么我们就直接禁止外域(或者不受信任的域名)对我们发起请求。在HTTP协议中,每一个异步请求都会携带两个Header,用于标记来源域名:OriginHeader和RefererHeader。通过Header的验证,我们可以知道发起请求的来源域名,这些来源域名可能是网站本域,或者子域名,或者有授权的第三方域名,又或者来自不可信的未知域名。在Web应用中检查请求头中的Header字段,确保请求来自合法的来源。但是,这种方式并不是完全可靠的,因为攻击者可以通过篡改HTTP请求头的方式绕过Header检查。Samesite
Cookie02为了从源头上解决CSRF攻击,Google起草了一份草案来改进HTTP协议,那就是为Set-Cookie响应头新增Samesite属性,它用来标明这个Cookie是个“同站Cookie”,同站Cookie只能作为第一方Cookie,不能作为第三方Cookie,Samesite有两个属性值,分别是Strict和Lax。Strict最为严格,完全禁止第三方Cookie,跨站点时,任何情况下都不会发送Cookie。换言之,只有当前网页的URL与请求目标一致,才会带上Cookie
:Set-Cookie:CookieName=CookieValue;SameSite=Strict;
这个规则过于严格,可能造成非常不好的用户体验。比如,当前网页有一个GitHub链接,用户点击跳转就不会带有GitHub的Cookie,跳转过去总是未登陆状态。Lax规则稍稍放宽,大多数情况也是不发送第三方Cookie,但是导航到目标网址的Get请求除外。
Set-Cookie:CookieName=CookieValue;SameSite=Lax;
CSRF
Token03<?php//
生成CSRF
Tokensession_start();if
(!isset($_SESSION['csrf_token']))
{
$_SESSION['csrf_token']
=
md5(uniqid(mt_rand(),
true));}$csrf_token
=
$_SESSION['csrf_token'];//
验证CSRF
Tokenif
($_SERVER['REQUEST_METHOD']
===
'POST')
{
if
(!isset($_POST['csrf_token'])
||
$_POST['csrf_token']
!==
$csrf_token)
{
die('Invalid
CSRF
token');
}
//
处理表单请求}?><!--
表单中包含CSRF
Token
--><form
action="submit.php"
method="post">
<input
type="hidden"
name="csrf_token"
value="<?php
echo
$csrf_token;
?>">
<!--
其他表单字段
-->
<input
type="submit"
value="提交"></form>在应用程序中使用CSRFToken可以有效地防止CSRF攻击。CSRFToken是在服务器端生成的一段随机字符串,该字符串与用户会话相关联,作为表单隐藏字段或请求参数的一部分,一起发送给客户端浏览器。当客户端提交表单或请求时,服务器端会验证请求中的Token是否与用户会话中的Token一致,如果一致则认为请求是合法的,否则拒绝请求。这样,即使攻击者成功伪造了请求,也无法获取有效的令牌信息,从而无法完成攻击。特定情况下的必要验证04<?phpsession_start();
//
验证用户是否已登录if
(!isset($_SESSION['user_id']))
{header('Location:
login.php');exit();}
//
处理表单提交if
(isset($_POST['old_password'])
&&
isset($_POST['new_password'])
&&
isset($_POST['confirm_password']))
{$old_password
=
$_POST['old_password'];$new_password
=
$_POST['new_password'];$confirm_password
=
$_POST['confirm_password'];
//
连接数据库$db
=
new
PDO('mysql:host=localhost;dbname=blog',
'username',
'password');
//
查询用户的密码$stmt
=
$db->prepare('SELECT
password
FROM
users
WHERE
id
=
?');$stmt->execute([$_SESSION['user_id']]);$user
=
$stmt->fetch();
//
检查旧密码是否正确if
(password_verify($old_password,
$user['password']))
{//
检查新密码是否匹配确认密码if
($new_password
===
$confirm_password)
{//
更新用户的密码$stmt
=
$db->prepare('UPDATE
users
SET
password
=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024销售人员劳务合同范本
- 2024食品行业销售渠道拓展合同
- 2025年度智能化厨房设备承包合同范本4篇
- 2025年度生物科技研发成果保密合同4篇
- 2025年度深海油气田打深水井设备供应合同2篇
- 2025年度图书馆虫害防治与文物保护服务合同4篇
- 2025年度智慧城市建设项目代理房屋买卖合同4篇
- 2024版养猪场用工合同范本
- 2024版货物运输合同完整样本
- 2025年度新型环保储罐安装及维护服务合同4篇
- 深圳2024-2025学年度四年级第一学期期末数学试题
- 中考语文复习说话要得体
- 《工商业储能柜技术规范》
- 华中师范大学教育技术学硕士研究生培养方案
- 医院医学伦理委员会章程
- xx单位政务云商用密码应用方案V2.0
- 风浪流耦合作用下锚泊式海上试验平台的水动力特性试验
- 高考英语语法专练定语从句含答案
- 有机农业种植技术操作手册
- 【教案】Unit+5+Fun+Clubs+大单元整体教学设计人教版(2024)七年级英语上册
- 2024-2025学年四年级上册数学人教版期末测评卷(含答案)
评论
0/150
提交评论