权限的相关内容

目录

权限的四个概念

认证

根据声明者持有的特定信息,来确认声明者的身份关键点是特定信息,这个信息,⼀般也称为认证因素。⽐如最常⻅的⽤户名密码,说⽩了,就是我要⽤这些信息来证明"我是我"。

更具体的,如何证明"我是我"?其实就是⼀个信息⽐较的过程,⼀定要预先有⼀个数据库来储存原信息。

授权

服务器给予的临时凭证,持有该凭证的⽤户即认为已经经过了认证,⽆需再次进⾏认证。(⽤户在后续的访问中,只需要出示凭证即可,⽆需⼀次⼀次的进⾏认证)并且,在授权的过程中,要明确的是权限也是划分等级的。⼀个管理员账户与⼀个普通⽤户账户⾃然不能⽐较。

鉴权

鉴定⽤户是否持有授权

鉴定⽤户的授权是否有效

鉴定⽤户的授权的等级

权限验证

其实权限验证跟鉴权的界限⾮常模糊,或者可以说权限验证/权限控制(ACL)是鉴权的⼦集也不为过。为什么要单独拿出来,就是为了引出具体的"动作"权限验证这个概念。

挑战/应答(Challenge/Response)

php 复制代码
# 输出挑战信息
print("Hello! Challenge here!")
 
# 生成挑战码,一般是个随机字符串之类的
code = ChallengeCodeGenerator()
 
# 根据挑战码生成应该得到的应答
resp = responseGenerator(code)
 
# 输出挑战码
print("Here is the ChallengeCode:" + code)
 
# 获取用户应答
user_input = read_input()
 
# 检测用户应答是否正确
if user_input == resp:
    print("You are in")
else:
    print("Out!")

所以说,这种挑战、应答机制是否安全,强依赖于respGenerater中⽣成逻辑。⼀旦其⽣成逻辑开源出来,并且是⼀个环境⽆关的检测逻辑,那么很有可能就被击溃,因为攻击者并不需要考虑任何环境因素。

有⼀个强依赖于环境的变量在其中,⽐如:某设备出⼚的时候,就是⼀机⼀码的,该唯⼀的身份码已经直接硬编码写在机器的/etc/dada⽬录,每个机器都不⼀样。只有⼚商在⾃家的数据库有存,这种情况下,我们就没办法直接预知了。

授权⽅式/身份凭证

php 复制代码
<?php
if ($_COOKIE["user_id"] == 0) {
    echo "你是管理员";
} else {
    echo "你是游客";
}
?>

session

认证成功后后端会⽣成session_id,并且将该session_id存在某个地⽅。

然后做以下操作:

  1. 在认证结束的返回(response)中,进⾏set-cookie将session_id告知客户端浏览器
  2. 客户端在后续的访问中携带session_Id进⾏访问(持有身份凭证)
  3. 从某个地⽅检查该session_id的有效性(鉴权)
  4. 根据鉴权结果,确定是否有权限进⾏某动作。

储存位置

php

默认存储在服务端/tmp⽬录下(⽂件)

flask

默认存储在⽤户的cookie中(密钥加密)

java

默认存储在内存中

gin/其他可选的地⽅

redis/mysql/memcached/mongodb

jwt认证

JWT(JSON Web Token)是⼀个开放标准(RFC 7519),它定义了⼀种紧凑且⾃包含的

⽅式,以JSON对象的形式在各⽅之间安全地传输信息。

JWT是⼀个数字签名,⽣成的信息是可以验证并被信任的。

使⽤密钥(使⽤HMAC算法)或使⽤RSA或ECDSA的公钥/私钥对JWT进⾏签名。

JWT是⽬前最流⾏的跨域认证解决⽅案

AK/SK认证

客户端在调用的服务端接口时候,会带上ak以及signature(使用sk对内容进行加密后得出的签名)进行请求,在服务端接收到这个请求的时候,首先会根据ak去数据库里面去找到对应的sk,然后使用sk对请求内容进行加密得到一个签名,然后对比客户端传过来的签名和服务端计算的出来的签名是否一致,如果一致则代表身份认证通过,反之则不通过。

相关推荐
网安-轩逸1 小时前
网络安全:攻击和防御练习(全战课), DDos压力测试
web安全·okhttp·ddos
网络安全工程师老王1 小时前
flask请求头回显的学习和探究如何进行错误页面污染回显
web安全·网络安全·信息安全·flask
群联云防护小杜4 小时前
为什么DDoS防御很贵?
网络·网络协议·web安全·ddos
网络安全King5 小时前
[网络安全系列面试题] GET 和 POST 的区别在哪里?
网络·安全·web安全
IT-sec7 小时前
Apache OFBiz xmlrpc XXE漏洞(CVE-2018-8033)
安全·web安全·网络安全·系统安全
IT-sec1 天前
jquery-picture-cut 任意文件上传(CVE-2018-9208)
android·前端·javascript·安全·web安全·网络安全·jquery
网络安全-老纪1 天前
网工考试——网络安全
网络·安全·web安全
嚯——哈哈1 天前
高防服务器HOT:网络安全的无形盾牌,护航业务稳定
服务器·安全·web安全
The博宇1 天前
真实网络安全面试场景题
安全·web安全