当前位置: 首页 > news >正文

创建一个网站要多少钱网站外包要花多少钱

创建一个网站要多少钱,网站外包要花多少钱,广告公司名称推荐,新媒体如何运营推广相关知识 大多数网站都会使用 cookie 记录用户的身份。cookie 是由少量数据组成的字符串#xff08;通常还要经过加密#xff09;。网站会要求浏览器存储这些数据#xff0c;并在向服务端发起请求时将这些数据传回给服务端。 通常#xff0c;用于处理登录#xff08;识别…相关知识 大多数网站都会使用 cookie 记录用户的身份。cookie 是由少量数据组成的字符串通常还要经过加密。网站会要求浏览器存储这些数据并在向服务端发起请求时将这些数据传回给服务端。 通常用于处理登录识别用户身份的 cookie 分为两种 签名式 cookie 存储包含用户 ID 等可直接识别用户的信息附加一个签名核对 cookie 信息是否被恶意篡改令牌式 cookie 存储一个随机字符串令牌通过在服务端的数据库中查找随机字符串和用户的对应关系识别用户身份 这两种 cookie 各有优缺我们可以通过一个表格对比两者的优缺 类型优点缺点签名式 cookie直接存储用户信息方便验证用户身份可以包含额外信息对 cookie 进行签名较简单遗漏签名会导致安全漏洞加密方法不当会泄露用户敏感信息令牌式 cookiecookie 体积小可加快通信速度需要使用数据库存储令牌会造成额外开销 为了避免安全漏洞本关卡中我们使用令牌式 cookie。 这篇文章将教会你掌握1如何核对令牌2如何更新令牌3如何定期清理无用信息。 如何核对令牌 前面提到了令牌式 cookie 的最大缺点就是会造成额外开销。大多数关系型数据库在每台数据库服务器上只能插入、更新或删除 200 - 2000 个数据行/秒。当网站的负载变高时数据库就成为了瓶颈。所以我们需要使用 Redis 取代关系型数据库存放令牌。 首先我们约定令牌的存储方式。我们使用一个哈希存储登录令牌与用户的映射关系其中 哈希键名为 login登录令牌作为域用户 ID 作为值 所以核对令牌就变得十分简单方法如下 import redisconn redis.Redis()def check_token(token): return conn.hget(login, token) 我们使用 hget() 方法从 Redis 中取出并返回令牌对应的用户 ID而**当令牌不存在时该方法则会返回 None**从而达到核对检查的效果。 如何更新令牌 更新令牌需要做两个工作 记录用户令牌记录令牌生成时间 由于令牌存在被人窃取的可能所以我们不允许令牌永不过期。通过记录令牌生成的时间戳我们可以通过定期清理的方式清理掉一定时间前生成过老的令牌从而实现令牌的时限性在一定程度上也减少了 Redis 的存储量避免内存过高消耗。 使用有序集合记录令牌生成时间能让我们更便捷的根据时间戳对令牌进行排序然后再对一定时间前生成过老的令牌进行删除。将时间戳作为分值令牌作为成员记录到有序集合 recent:token 中 import timetimestamp time.time() #返回当前时间的时间戳1970年后经过的浮点秒数 conn.zadd(recent:token, token, timestamp) 而记录用户令牌可以使用 hset() 方法将 token 和 user_id 的域-值对关系记录到哈希中 conn.hset(login, token, user_id) 上述两个操作是相关的记录了用户令牌则应该也有对应的令牌生成时间所以我们应该使用事务将两条命令包起来最后一起提交给 Redis 处理 def update_token(token, user_id): timestamp time.time() pipe conn.pipeline() pipe.hset(login, token, user_id) pipe.zadd(recent:token, token, timestamp) pipe.execute() 如何定期清理无用信息 随着登录用户的增多令牌存储所需的内存也会不断增加这时我们需要定期清理过期的令牌数据。 决定令牌的有效时间需要权衡数据安全与用户体验两方面 有效时间过短则用户需要频繁的输入账户密码登入系统有效时间过长则令牌泄露的可能性增大伪造用户身份的可能性也越大 综合上述两个方面的考虑我们将令牌的有效时间设置为一个星期86400秒在每次清理令牌数据时我们找到令牌生成时间在一个星期前的数据并将这些令牌和令牌生成时间数据全部删除。 寻找一个星期前生成的令牌是关键我们可以使用当前 Unix 时间减去 86400 得到一个星期前的 Unix 时间戳然后使用有序集合命令 ZRANGEBYSCORE 获取有序集合 recent:token 中所有分值生成时间大于等于 0小于等于一个星期前的 Unix 时间戳的成员 one_week_ago_timestamp time.time() - 86400exipred_tokens conn.zrangebyscore(recent:token, 0, one_week_ago_timestamp) 接下来我们要从有序集合 recent:token 中删除掉 expired_tokens 的所有成员以及从哈希 login 中移除所有过期的 token 域。 为了减少客户端与 Redis 之间的通信次数我们可以直接使用 ZREMRANGEBYSCORE 命令移除有序集合 recent:token 中所有分值生成时间大于等于 0小于等于一个星期前的 Unix 时间戳的成员 conn.zremrangebyscore(recent:token, 0, one_week_ago_timestamp) conn.hdel(login, *expired_tokens) 我们使用了 hdel() 方法一次性从哈希 login 中移除了所有过期的 token 域由于 expired_tokens 是一个数组而客户端会默认将输入的值转换为字符串所以我们在这里要使用 *expired_tokens以指针的形式调用 expired_tokens 变量传入多个参数域。 让清理方法自动执行 你可以使用守护进程的方式来保证这个方法始终在运行也可以通过定时任务cron job每隔一段时间执行一次 因为这些知识超出了本实训的讲解范围在这里就不再详述。 编程要求 根据提示在右侧Begin-End区域补充代码完成令牌管理的后端处理逻辑 在 check_token(token) 方法中 使用 hget() 方法从哈希 login 中取出参数 token 域的值返回return上述值在 update_token(token, user_id) 方法中 参数说明 token 为令牌user_id 为该令牌对应的用户 ID 获得当前时间并赋值给 timestamp使用事务提交下列命令 将域 token 与值 user_id 对存入哈希键 login 中将成员 token 存入有序集合 recent:token 中分值为 timestamp在 clean_tokens() 方法中 使用当前时间减去 86400 得到一周前时间戳并赋值给 one_week_ago_timestamp使用 zrangebyscore 方法获取有序集合 recent:token 中 分值大于等于 0小于等于 one_week_ago_timestamp 的所有成员并赋值给变量 expired_tokens 使用 zremrangebyscore 方法移除有序集合 recent:token 中 分值大于等于 0小于等于 one_week_ago_timestamp 的所有成员 移除哈希 login 中所有与变量 expired_tokens 中相同的域 使用指针形式传入参数 *expired_tokens
http://www.huolong8.cn/news/90845/

相关文章:

  • 秦皇岛手机网站制作价格鞋帽箱包网站建设
  • 表白网站源码大全jsp网站开发关键技术
  • 用dw制作个人网站网络营销课程多少钱
  • 一个网站设计的费用wordpress开启缩略图
  • 金融做网站朝阳网站设计
  • 永州市建设工程质量安全监督站官方网站苏州设计网站
  • 中国建设银行进不了登录网站在线p图网页版免费
  • 网站域名查询系统北京广告网站建设
  • 网站开发技术培训专业手机建站公司
  • 网站静态图怎么做公众号开发设计费用
  • 做设计找素材的+网站有哪些wordpress小工具浮动
  • iis7.5发布网站教程新吴网站建设
  • 网站建设服务公司案例蜜淘app在那个网站做的
  • 晾衣架 东莞网站建设国内知名室内设计公司
  • 做不做我女朋友的网站专门做电商的招聘网站
  • 英语网站 php源码php网站服务器搭建
  • 广州网站推广方案济南医院网站建设服务公司
  • 吉林省住房和建设厅网站廊坊网站备案
  • 网站mssql 导出数据沃尔玛商城
  • 建个小型网站服务器wordpress 可视化编辑
  • 那些网站可以做公司的推广山东住房和城乡建设厅网站首页
  • 大庆做网站找谁网络营销产品价格策略
  • 专做蓝领招聘网站有哪些免费空间服务的网站
  • 专业自助建站图书馆网站建设的意义
  • 手机网站菜单设计模板html网站建设实例代码
  • 网站所有页面扬州互联网公司
  • 什么网站能看男女做暧公司注册代理中介
  • 网站建设经营服务合同范本用wordpress做广告收益
  • 豫建设标 网站重庆搜索排名提升
  • 莱西做网站国内重大新闻事件