【问题标题】:What programming languages are hard to be sneaky with? [closed]哪些编程语言很难偷偷摸摸? [关闭]
【发布时间】:2014-02-19 08:36:59
【问题描述】:

某些编程语言允许您具有欺骗性,无论好坏。 C is an obvious example,当然汇编程序在这方面做得更好。

哪些语言很难欺骗?我想这是一个两部分的问题 - Q1:哪些流行语言(Python、Java 等)不容易偷偷摸摸,Q2:是否有专门设计用于禁止欺骗性做法的语言?

(我问的是源代码级别的欺骗,源代码不适合欺骗的语言。)

【问题讨论】:

  • 定义“欺骗”和“偷偷摸摸”。
  • @deceze - 我认为只是这些词的常见定义。想象你正在编写一个会计程序,并且你的源代码将被审查以确保你没有在其中放置一个秘密后门来做任何犯罪活动,但是你想把那个后门放进去,所以你必须编写代码具有欺骗性,因此您的意图并不明显-这是偷偷摸摸的和欺骗性的。我帖子中的链接说明了我在说什么:underhanded.xcott.com
  • 这个问题可能更适合programmers.stackexchange.com

标签: security programming-languages


【解决方案1】:

我认为这个问题有点难以明确回答。我使用过的大多数编程语言都可能被用来误导开发人员。毕竟是用代码写的。

我认为最严重的违规者之一是 JavaScript。 JavaScript 让你摆脱了许多令人困惑的做法。一些例子是使用变量而不声明它,范围不是由循环/条件定义 - 但函数,奇怪方式线程在 JS/浏览器中处理,浏览器之间的兼容性,名称冲突,它继续。挂断电话的方法有很多。

现在,我认为与此相反的是强类型语言,它具有像 C# 这样的激进且无处不在的 IDE。 IDE/编译器提供了许多警告和“建议”。我可能只是这么说,因为我最了解 C#。在这方面,Java 可能与 C# 非常相似。

另一种衡量偷偷摸摸的方法是如何处理side-effects。在这种情况下,像 haskell 这样的 (mostly) 纯函数式语言可能是一个很好的例子。函数式语言通常可以是proven correct with significantly less effort,而不是具有不同范式的语言中的类似代码。

因此,对于没有太多该语言经验的人来说,具有良好 IDE 的强类型语言可能是捕捉任何偷偷摸摸的最佳方法。我认为,如果您是函数式语言方面的专家,那么在那里偷偷摸摸地逃脱的可能性要小得多。也许完美的平衡是 F#!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-14
    • 1970-01-01
    • 2013-11-30
    • 2012-10-22
    • 2012-01-19
    相关资源
    最近更新 更多