2012-02-15 65 views
3

是否还有一种编程语言会阻止XSS和SQL注入。不允许XSS和SQL注入的编程语言

我的想法是有上下文感知,并将在必要时正确编码。例如,如果在调用SQL函数时使用了一个字符串,除非您声明不要引用该字符串,否则会引用该字符串。如果将变量放入打印的字符串中,则可以使用上下文感知编码,以了解代码是否在HTML属性中找到,HTML是完全格式化的(包含非空格和返回值)还是CSS,Script。

这样的语言是否存在?一个

  • 编码默认情况下,除非你说,否则,
  • 包括针对不同上下文考虑(HTML,脚本至少)
  • 是否在编译时所有的上下文感知的东西,
  • 它不需要编译成字节码。一种流行的高级语言将会这样做。
+2

这似乎是* language *中错位的功能。任何通用语言都必须支持通用字符串连接。错误在于人们使用它来建立易于注入各种类型的字符串。这个问题早已通过使用更专业的工具来解决,包括准备好的陈述和模板语言。 – deceze 2012-02-15 23:25:18

+0

正确。它必须支持未编码的轮廓。这个想法是默认编码,根据它是用于SQL调用还是打印到网页调用。程序员有时需要选择关闭编码。不过,我认为模板语言可能是最接近正确答案的东西。 – 2012-02-16 16:44:46

+2

@deceze:皮肤上还有一种方法来处理猫(即以通用编程语言处理HTML片段)。例如,您可以通过将其表示为数据类型来嵌入HTML的抽象语法。 – 2012-02-17 04:29:35

回答

1

你一定可以看看OPAUr/Web,他们都强调安全性/安全性(不同程度)。