首页 > 解决方案 > 如何防止 javascript 中格式错误的 unicode 字符串

问题描述

我正在对我的 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 中使用上述攻击字符串对其进行了尝试,它解析得很好,没有错误。我使用的编码错误吗?我的终端是否会以某种方式影响角色?我应该使用不同的功能吗?

任何帮助将不胜感激,我对这样的攻击很陌生。

标签: javascriptsecurityunicode

解决方案


推荐阅读