ITPub博客

首页 > 应用开发 > Html/css > 从html5的新特性定位安全问题

从html5的新特性定位安全问题

原创 Html/css 作者:肿诹逊汲 时间:2020-09-22 13:41:56 0 删除 编辑

  公司这边的在线客服系统遇到了点安全问题,分析了开发的方案:

  因为是web的聊天系统,聊天记录一般会存在html的dom里,存在客户端,每次打开还能看到聊天的历史记录,以前腾讯的web qq就是这么实现的,但是问题是这样以来,dom会被撑的很大,加载起来就会变慢,一定量甚至会造成浏览器崩溃,同时也想过用cookie存,但是毕竟cookie这东西太大了就不太好了。于是采用了另一种办法是采用h5提供的客户端存储数据的一种新方法(web storage)

  localStorage - 没有时间限制的数据存储

  还有一种是

  sessionStorage - 针对一个 session 的数据存储

  localStorage的效果就是你关闭浏览器后,再次打开计数器依然不变,因为是记录在本地的

  wKiom1ZK4AHhLNWLAAEHvkOQuXQ685.png

  <!DOCTYPE HTML><html><title>localstorage</title><body><script type="text/javascript">if (localStorage.pagecount)

  {

  localStorage.pagecount=Number(localStorage.pagecount) +1;

  }else

  {

  localStorage.pagecount=1;

  }document.write("Visits: " + localStorage.pagecount + " time(s).");</script><p>刷新页面会看到计数器在增长。</p><p>请关闭浏览器窗口,然后再试一次,计数器会继续计数。</p></body></html>

  如果使用sessionStorage就不一样了。因为是基于会话记录的,关闭了,计数器就没了。。。换成聊天的话,你的聊天记录也就没了。。。所以不太适合我们的需要。。。

  wKiom1ZK4R3wBfFwAAD5AVTO94I924.png

  <!DOCTYPE HTML><html><title>sessionstorage</title><body><script type="text/javascript">if (sessionStorage.pagecount)

  {

  sessionStorage.pagecount=Number(sessionStorage.pagecount) +1;

  }else

  {

  sessionStorage.pagecount=1;

  }document.write("Visits " + sessionStorage.pagecount + " time(s) this session.");</script><p>刷新页面会看到计数器在增长。</p><p>请关闭浏览器窗口,然后再试一次,计数器已经重置了。</p></body></html>

  但是由于localStorage存在客户端,所以不能分配太大的空间,我们给他分配了5M空间,并且周期性的清除localstorage,这里定位了一个安全问题,发送消息的接口是没有加密的,于是我写了一个python的程序模拟发送消息,一会这个消息就在清除之前写满了,溢出了,所以接口要做加密限制,不能暴露在外,还要限制接口的请求频率等。

  写下这篇做个记录。。。


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69920892/viewspace-2723126/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2020-09-21

  • 博文量
    12
  • 访问量
    9311