【问题标题】:Javascript increment ( ++) warning [duplicate]Javascript增量(++)警告[重复]
【发布时间】:2016-07-02 21:44:21
【问题描述】:

我注意到,jslint 警告我有关增量:

var x = 1;

x++;

语句位置出现意外的表达式“++”。

来自文档:

它们在启用病毒和其他安全威胁方面仅次于错误的架构

病毒如何利用它?

有人可以解释为什么它不好以及它会导致什么吗?

【问题讨论】:

  • x += 1 它并没有为此抱怨。
  • 为什么?为什么++不好?
  • 基本上 Doug Crockford 不喜欢 ++,因此 JSLint 会发出警告。请改用 JSHint/ESLint。远不那么固执/更可配置。

标签: javascript jslint


【解决方案1】:

我不知道你为什么看不懂documentation,无论如何:

++ 和 --

已知 ++ 递增和 -- 递减运算符 通过鼓励过度的技巧来促成糟糕的代码。他们是 在启用病毒和其他方面仅次于错误的架构 安全威胁。此外,前增量/后增量混淆可以 产生非常难以诊断的错误。 幸运的是,它们也完全没有必要。有更好的方法 给变量加 1。

最好完全避免使用这些运算符并依赖 += 和 -= 而是。

更新:一旦原始问题更改,这里是新问题的答案:

引用短语的主要思想是你可以犯错误并提供安全漏洞(可能被病毒利用),想象一下从用户获取值并写入数据库的伪nodejs代码:

arguments = array('sql'=>'query');
i=0;
if (arguments[i]=='sql' and arguments[i++] does not contain drop table)
    exec db query arguments[i];
if (arguments[i]=='file' and arguments[i++] is not executable js/php)
    save content of arguments[i] as file on disk, so it can be executed

这里是,后增量中的小错误会导致安全漏洞

【讨论】:

  • 为什么?病毒如何利用它?
猜你喜欢
  • 2011-08-26
  • 2011-01-21
  • 2013-02-23
  • 1970-01-01
  • 1970-01-01
  • 2014-01-14
  • 2017-05-31
  • 2012-08-07
  • 2011-08-09
相关资源
最近更新 更多