【发布时间】:2012-03-28 19:23:01
【问题描述】:
我有一个输入 onchange,可以将 05008 等数字转换为 5,008.00。
我正在考虑对此进行扩展,以便进行简单的计算。例如,45*5 将自动转换为 225.00。
我可以使用字符白名单()+/*-0123456789.,然后将结果传递给eval,我认为这些字符是安全的,可以防止任何危险的注入。假设我使用了适当的try/catch,因为可能会产生语法错误。
这是一个 OK 白名单,然后将其传递给
eval?建议修改白名单
-
您是否推荐一种不同的方法(也许已经有一个函数可以做到这一点)
我宁愿保持轻量级。这就是我喜欢
eval/white-list 方法的原因。代码很少。
你有什么推荐的?
【问题讨论】:
-
您是否将原始输入传递给其他用户/数据库/其他地方?否则我不会担心用户注入自己。
-
可能会为页面设计一个链接,导致填写自定义默认值。如果恶意的人让用户点击链接,我需要确保它不会t 将 javascript 代码注入我的页面,导致 XSS 攻击。我认为白名单可以,但我知道JavaScript can be done without letters,所以我想先由你们运行它。每当我这样做时,我经常会得到更好的想法。
-
澄清一下,JavaScript 的工作是规范化输入。服务器只是拒绝任何意外。所以 服务器 不会在任何地方发送原始输入,直到它被转换为
double- 没有任何花哨的解释,因为这都是在客户端完成的。服务器使用普通已知的安全解析,JavaScript 使用这个花哨的安全数学函数。
标签: javascript math onchange