个人博客项目&登录验证&Cookie&Session&验证码安全
登录用户逻辑安全
1.发送登陆请求 账户 密码
2.接受账户密码
3.判断账户密码的准确性
正确 成功登陆 ——>跳转到成功页面
错误 登陆失败——> 重新登陆
后台管理系统有多个文件页面,为了方便验证,一般会选用cookie或session验证身份
cookie:身份验证 存储到客户端浏览器内
cookie安全:cookie修改 伪造 盗取
【HTTP协议本身是无状态的。什么是无状态呢,即服务器无法判断用户身份。
Cookie实际上是一小段的文本信息(key-value格式)。
客户端向服务器发起请求,如果服务器需要记录该用户状态,
就使用response向客户端浏览器颁发一个Cookie。
客户端浏览器会把Cookie保存起来。当浏览器再请求该网站时,
浏览器把请求的网址连同该Cookie一同提交给服务器。
服务器检查该Cookie,以此来辨认用户状态。】
session: 身份验证 存储到服务端服务器内
【Session:Session 代表着服务器和客户端一次会话的过程。Session 对象存储特定用户会话所需的属性及配置信息。这样,当用户在应用程序的 Web 页之间跳转时,存储在 Session 对象中的变量将不会丢失,
而是在整个用户会话中一直存在下去。当客户端关闭会话,或者 Session 超时失效时会话结束。息。】
session安全: 会话劫持(session劫持)
二者的区别:
①Cookie可以存储在浏览器或者本地,Session只能存在服务器
②session 能够存储任意的 java 对象,cookie 只能存储 String 类型的对象
③Session比Cookie更具有安全性(Cookie有安全隐患,通过拦截或本地文件找得到你的cookie后可以进行攻击)
④Session占用服务器性能,Session过多,增加服务器压力
⑤单个Cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个Cookie,Session是没有大小限制和服务器的内存大小有关。
【cookie在过程中可以被修改,而后者在第一次使用后就会被清除,下一次重新生成,因此无法修改】
相关资料:https://blog.csdn.net/weixin_45393094/article/details/104747360?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522167087044316800182149127%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=167087044316800182149127&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2alltop_positive~default-2-104747360-null-null.142v68control,201v4add_ask,213v2t3_esquery_v3&utm_term=session&spm=1018.2226.3001.4187
个人博客项目&JS-Ajax&前端逻辑&购物&登录&上传
对文件上传的后缀名进行验证,符合要求的才能上传
这个功能的实现主要有两种js和php
两种验证的区别:
PHP验证的代码看不到,你能看见的是代码执行后的结果,只能黑盒测试
JS(JavaScript)验证的代码就在前端,可以直接看到代码。白盒测试
js ajax
请求->返回->读取返回的数据->js ajax代码进行解析->结果
php
请求->返回->返回结果
什么是ajax?
Ajax即Asynchronous Javascript And XML(异步JavaScript和XML)
在 2005年被Jesse James Garrett提出的新术语,
用来描述一种使用现有技术集合的‘新’方法,包括: HTML 或 XHTML,
CSS, JavaScript, DOM, XML, XSLT, 以及最重要的XMLHttpRequest。
[3] 使用Ajax技术网页应用能够快速地将增量更新呈现在用户界面上,
而不需要重载(刷新)整个页面,这使得程序能够更快地回应用户的操作