簡體   English   中英

將加密的數據發送到服務器時,Javascript中的XSS

[英]XSS in Javascript when sending encrypted data to server

處理加密數據時,Javascript中輸入清除的最佳方法是什么? 可以說,鮑勃以格式而不是常規消息的形式輸入了malicius代碼,我的JS用RSA加密了它,然后發送到服務器,消息在此等待愛麗絲檢索它。 例如,在Alice計算機上解密后,惡意代碼會從LocalStorage竊取一些重要秘密。

我唯一正確的方法是在解密后立即檢查消息是否包含一些錯誤代碼嗎? 也許只允許使用字母數字字符和其他一些基本字符,並且當解密的消息包含其他內容時,只是停止運行腳本並從內存中清除味精?

我認為這里最好的解決方案不是清理Bob的輸入,而是在顯示給Alice之前清理它。 因此,即使Bob輸入了一些惡意代碼,也不會在顯示之前執行任何惡意代碼。

因此,只需執行以下操作:

  1. 鮑勃輸入惡意消息並通過RSA對其進行加密。
  2. 消息發送到服務器
  3. 愛麗絲檢索她的消息,對其進行解碼並在顯示之前執行消息清理 甚至在顯示解密的消息之前,用JavaScript用適當的HTML實體( &quot;&lt;等)簡單地替換引號( "' )和方括號( <> ),也足以使Alice免受XSS的侵害。

因此,該代碼不會從Alice那里竊取任何東西。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM