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

推荐订阅源

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)》往届学生优秀作业 【辅导】Task18 更新与插入删除操作 主要知识点 【辅导】Task17 查询数据 主要知识点 【辅导】Task16 使用MySQL数据库 主要知识点 【辅导】Task15 熟悉错误与异常处理 主要知识点 【辅导】Task14 使用正则表达式 主要知识点 【辅导】Task13 使用会话管理 主要知识点(2) 【辅导】Task13 使用会话管理 主要知识点(1) 【辅导】Task12 使用类和对象 主要知识点(2) 【辅导】Task12 使用类和对象 主要知识点(1) 【辅导】Task11 熟悉PHP文件操作 主要知识点 【辅导】Task10 掌握PHP表单处理 主要知识点
【辅导】Task19 实现用户登录 主要知识点
银翼 · 2020-05-20 · via 博客园 - 银翼

本任务除介绍使用数据库表来验证用户名密码是否正确以应用于登录界面设计外,其余内容实际上对本文课程的一个综合应用,构建一个简单的信息管理系统(Sakila信息系统中的客户管理),并以此作为课程实训的一个参考案例。

1、为什么用户的登录密码必须加密存储?

《网络安全法》规定,网络运营者必须履行网络安全等级保护等义务,《信息安全技术网络安全等级保护基本要求》(等保2.0)要求进行身份鉴别时,应采用口令、密码技术、生物技术等两种或两种以上组合的鉴别技术对用户进行身份鉴别。

2011年CSDN就发生过600万用户密码泄露,之后又发生多起密码泄露事件,2019年又爆Facebook上亿用户密码泄露。由于用户在多个平台用户注册的账号可能会使用同一密码,给用户造成的损失不可估量。密码加密存储、使用复杂密码、定期更换密码是保护账户安全的重要措施。网络运营者不按网络安全法要求保护用户数据,最高可入刑。近2年网安部门处罚多起网络安全事件,单位及法人代表受警告及罚款。

2、哈希算法的原理

对登录密码进行加密,多采用哈希算法。哈希算法是一个公开函数,可以将任意长度的消息M映射成为一个长度较短且长度固定的值H(M)。是一种单项密码机制,具有易压缩、易计算、单向性、抗碰撞、高灵敏性。

哈希算法可以检验传输的信息是否相同,检验信息的拥有者是否真实。

理论上哈希算法不能被破解,黑客基本上使用暴力破解或表格破解。只要密码够长够复杂,基本上难以破解。你的密码之所以被盗,基本上是属于:密码太简单+多网站使用相同密码

常用的哈希算法使用MD5和SHA。MD5+SALT(加盐)、SHA1对大部分中小型网站来说足够安全,一些网站还会使用SHA-256、SHA-512、bcrypt等安全性更高的加密方式。

3、登录认证过程

Task13中已经介绍了登录认证的过程,就是验证用户输入用户名或密码正确时,记录一个SESSION。

案例中使用User类的login函数验证用户名和密码是否正确,将User类对象存储到SESSION中。

注意,登录时不要特意告诉用户是用户名输入错了,还是密码输入错了。这样做是方便了黑客更容易破解。一些网站还设置成登录错误若干次后,一段时间内不允许再登录,或者出现验证码输入框,主要是防止机器人自动尝试登录。

4、每个需授权访问的管理页面,都需验证用户是否经过登录认证。

验证用户是否经过登录认证,就是判断登录时保存的SESSION是否存在。为避免伪登录,这个SESSION名字可以起得复杂一些。重要的操作还可以使用二次登录。

5、提供注销(退出)功能

退出时,要删除掉登录时保存的SESSION,或者销毁当前用户SESSION。这个知识在Task13辅导时讲过的。删除SESSION时要转向至登录页面。

6、课后练习

有条件的同学,请务必参照课件和视频,在Task18的基础上,加入登录和身份认证功能。

7、后续教学安排

课程教学基本到Task19就结束了。

下周三进行第3次测试,内容是Task16-19的内容。

下周四把实训任务布置一下。

按原定的教学计划安排,第16周考试,第19-20周是实训周。现在这些要等学校的具体的安排了。