繁体   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