我正在对我的javascript应用程序中的用户文本字段进行一些注入攻击,并发现了一个特定的unicode字符串,当我的其他客户端应用程序从数据库中读取此值时,该字符串会导致我的崩溃。
如何防止这些有害的unicode字符串,同时仍然允许其他unicode(如日语字符)?
对于攻击字符串,我使用了本文档中的最后一个选项: https://www.cl.cam.ac.uk/~mgk25/ucs/examples/UTF-8-test.txt
5.3.4 U + nFFFE U + nFFFF(对于n = 1..10)| | “ | “
我读到了encodeURIComponent()
,听起来好像应该对格式错误的unicode字符串抛出错误。但是,我在终端中使用上述攻击字符串在节点REPL中进行了尝试,它解析得很好,没有任何错误。我使用的编码错误吗?我的终端机是否以某种方式影响了角色?我应该使用其他功能吗?
任何帮助将不胜感激,对于这样的攻击,我还是一个新手。