网站首页 包含标签 用户 的所有文章

  • 如何设计安全的API调用

    如何为网站设计安全的API访问? 我们在设计一个网站或平台的时候,经常需要向用户开放API访问。 这样用户就可以程序化地调用一些功能,举几个例子: 交易所开放API让用户可以进行低时延的程序化交易, 微信公众号平台开放API让三方工具进行运营管理工作, Stripe开放API让商家和其他平台能很好地集成支付功能。 当我们向用户开放API访问时,我们需要确保每次API调用都经过鉴权。 这意味着我们需要确认用户是他们所声称的身份。 我们一般使用两种常见的方法来进行鉴权: 基于令牌的身份验证 HMAC(基于哈希的消息验证码)验证 下图说明了它们的工作原理。 1、基于令牌 第1步 用户在客户端输入密码,然后客户端将密码发送到鉴权服务器。 第2步 鉴权服务器验证密码并生成一个有有效期的令牌。 第3步和第4步 现在,客户端可以发送请求,使用HTTP头中带有的令牌访问服务器资源。 这种访问在令牌过期前一直有效。 2、基于 HMAC 这种机制通过使用哈希函数(SHA256 或 MD5)生成消息验证码(签名)。 第1步和第2步 服务器生成两个密钥,一个是公共APP ID(公钥),另一个是 API Key(私钥)。 第3步 现在我们在客户端生成一个HMAC 签名(hmac A),该签名是根据图中列出的一组字段生成的。 注意这里会加入请求的时间戳,这样一个HMAC签名是有有效期的,不会一直有效。 第4步 客户端发送请求来访问服务器资源,HTTP头中包含hmac A。 第5步 服务器收到包含请求数据和鉴权标头的请求。 它从请求中提取必要的字段,并使用存储在服务器端的API Key 生成签名(hmac B)。 第6步和第7步 服务器会比较hmac A(在客户端生成)和hmac B(在服务器端生成)。 如果两者匹配,请求的资源将返回给客户端。 ...

    2023-12-13 246
  • Linux用户和组管理的常用命令

    用 root 用户登录,首先创建一个 bunian 用户。 useradd -m bunian -m 用于创建用户主目录,默认是不创建的。此外用 -d 参数可以自定义主目录(感觉很少用)。 创建 bunian 用户的密码,该命令也可以用于修改密码。回车后可输入密码。 passwd bunian 在 Linux 中,当创建了一个用户,系统会自动为其新建一个与用户名相同的主用户组名。可用下列命令查询 bunian 用户所属组(包括主组和辅助组): groups bunian # bunian : bunian 本次将 bunian 用户改到自己所需要的用户组中。 # 新增以下组 usermod -aG adm,cdrom,sudo,dip,plugdev,lxd bunian 查询 bunian 用户和主用户组的信息。 id bunian # uid=1001(bunian) gid=1001(bunian) groups=1001(bunian),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),117(lxd) ❝uid 和 gid 是由 Linux 系统分配给每个用户和主用户组的数字,从而允许系统识别用户和用户组。 默认情况下系统会自动为新的用户按照数字顺序从 1000 开始分配 uid 和 gid。前 1000 个账户号码通常被保留给系统账户、服务和其他特殊账户。uid 和 gid 分别存储在 /etc/passwd 和 /etc/groups 目录中。❞ 上述查到的各个组的定义如下: adm # 此组的成员可以查看许多日志文件 cdrom # 此组的成员可以访问 CD-ROM 驱动器和其他光驱 sudo # 此组的成员可以使用 sudo 命令来执行需要 root 权限的命令 dip # 此组的成员可以使用 ppp 和 dip 命令来拨号和使用PPP连接 plugdev # 此组的成员可以通过 pmount 挂载和卸载可移动设备 lxd # 此组的成员可以管理 LXD 容器 此时可以切换到 bunian 用户。 su bunian 切换到 bunian 用户后发现终端只显示 $ 符号。这是因为没有设置登录 shell,导致命令默认使用 /bin/sh。使用以下命令进行修改: usermod -s /bin/bash bunian 以上 wang 用户配置完毕。但在使用 sudo 命令时,需要输入 bunian 用户的密码,相对比较麻烦。可编辑 /etc/sudoers 文件进行修改: sudo vim /etc/sudoers # 找到下列行: # Allow members of group sudo to execute any command %sudo ALL=(ALL) :ALL # 修改为: # Allow members of group sudo to execute any command %sudo ALL=(ALL) NOPASSWD:ALL 再次使用 sudo 命令无需输入密码。 如果在上述第 3 步中,没有为 bunian 用户分配为 sudo 用户组,也可以单独为 bunian 用户设置使用 sudo 命令的权限,即通过编辑 /etc/sudoers 文件进行修改: ❝ 注意由于没有为 bunian 用户分配为 sudo 用户组,因此下列命令需要在 root 用户下执行。❞ # 需要在 root 用户下执行 !!! # 新增 /etc/sudoers.d/bunian 文件并编辑 vim /etc/sudoers.d/bunian # 在文件中添加以下内容: wang ALL=(ALL) NOPASSWD:ALL 进入 authorized_keys 目录,将自己的公钥复制到目录中。以后使用私钥登录即可。 mkdir -p ~/.ssh && vim ~/.ssh/authorized_keys 在有密钥登录的前提下,可顺便将密码登录关闭。 # 修改配置文件 sudo vim /etc/ssh/sshd_config # 将以下内容进行修改 PermitRootLogin no # 关闭 root 用户直接登录 PasswordAuthentication no # 关闭密码登录 修改上述配置后重新加载 ssh: sudo systemctl reload sshd 如果要删除 bunian 用户,则在 root 用户下执行以下命令: # 删除用户 bunian, 但保留了其主目录 userdel bunian # 删除 bunian 同时删除了主目录 userdel -r bunian </div> ...

    2023-10-19 193
  • Linux系统如何创建用户并为其设置密码

    根据下列要求创建用户及组账号: 1、名为admins的组 2、用户harry,其附属组为admins 3、用户natasha,其附属组还属于admins 4、用户alice,没有可交互的登录Shell,且不属于admins组 5、harry、natasha、alice的密码都应该是redhat [root@bunian ~]# groupadd admins #创建admins组 [root@bunian ~]# useradd -G admins harry #创建用户harry并设置其附属组为admins [root@bunian ~]# useradd -G admins natasha #创建用户natasha并设置其附属组为admins [root@bunian ~]# useradd -s /sbin/nologin alice #创建用户alice,设置不可交互的登录shell,不为其指定admins组 要求5的命令如下 [root@bunian ~]# echo redhat |passwd --stdin harry #为harry设置密码为redhat Changing password for user harry. passwd: all authentication tokens updated successfully. [root@bunian ~]# echo redhat |passwd --stdin natasha #为natasha设置密码为redhat Changing password for user natasha. passwd: all authentication tokens updated successfully. [root@bunian ~]# echo redhat |passwd --stdin alice #为alice设置密码为redhat Changing password for user alice. passwd: all authentication tokens updated successfully. </div> ...

    2023-09-02 325

联系我们

在线咨询:点击这里给我发消息

QQ交流群:KirinBlog

工作日:8:00-23:00,节假日休息

扫码关注