從html5的新特性定位安全問題
公司這邊的線上客服系統遇到了點安全問題,分析了開發的方案:
因為是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部落格 ” ,連結:http://blog.itpub.net/69920892/viewspace-2723126/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- HTML5新特性HTML
- HTML5 新特性!HTML
- HTML5的新特性概述(上)HTML
- html5新特性總結HTML
- 前端系列-HTML5新特性前端HTML
- HTML5新特性概述(下)HTML
- HTML5 新特性之 WebsocketHTMLWeb
- Xcode 10.1 新特性及解決的問題XCode
- 前端進階系列(三):HTML5新特性前端HTML
- 學習筆記~1.4 HTML5新特性筆記HTML
- Jib構建映象問題從定位到深入分析
- CSS3 和 HTML5 新特性一覽CSSS3HTML
- JVM問題定位工具JVM
- 從時延毛刺問題定位到 Netty 的效能統計設計Netty
- ios XCUIElement 元素定位問題iOSUI
- WEB應用訪問緩慢的問題定位Web
- HTML5新增特性HTML
- SQL優化案例-從執行計劃定位SQL問題(三)SQL優化
- Oracle優化案例-從執行計劃定位SQL問題(三)Oracle優化SQL
- 從一個死鎖問題分析最佳化器特性
- 從FMDB執行緒安全問題說起執行緒
- Java從8到21的語言新特性Java
- SQL最佳化案例-從執行計劃定位SQL問題(三)SQL
- 啃碎併發(五):Java執行緒安全特性與問題Java執行緒
- OOM分析之問題定位(二)OOM
- 解決高度塌陷、定位問題
- 磁碟問題定位與解決
- 如何快速定位線上出現的問題?
- MySQL 中如何定位 DDL 被阻塞的問題MySql
- Spark —— Spark OOM Error問題排查定位SparkOOMError
- 如何定位瀏覽器卡死問題瀏覽器
- 網路問題定位工具記錄
- ios8系統定位問題iOS
- MySQL 5.6中如何定位DDL被阻塞的問題MySql
- 在Linux中,mysql的innodb如何定位鎖問題?LinuxMySql
- activemq的ObjectMessage的安全問題MQObject
- 從實際開發的角度去看react的新特性hooksReactHook
- Flutter填坑筆記:從flutter pub get error 開始,定位Dart SDK問題Flutter筆記ErrorDart