2009-04-23 61 views
2

C,C++及其类似内存管理中的错误众所周知。我主要以动态的弱类型语言进行编程。在这种语言中是否存在特别重要的问题?我可以注意哪些特定于语言的问题?动态语言中的安全编程

我总是关注标准安全问题,并试图考虑代码可能被滥用的方式,但肯定会有很多我可能会犯的表面错误,并且有兴趣扩展我的知识在这方面。

回答

1

SQL Injection是一种不依赖于类型管理的常见攻击。通常,缺少输入验证是安全问题的一个常见原因。

2

如果您使用类似于eval()的任何东西,那么存在攻击风险,尤其是如果您信任应用程序之外的某些东西。

2

仅仅因为您没有编写较低级别的代码并不意味着您使用的语言以及您的应用程序不会有这些类型的安全问题。因此,我对您的问题的回答是确保您随时掌握使用的任何工具的最新版本。如果您托管运行应用程序的环境,这对您来说更是一个问题,否则如果您的应用程序必须在其计算机上运行应用程序,那么这对您的应用程序的用户来说更是一个问题。

+0

这是一个很好的提醒。 – vezult 2009-04-23 11:41:07

1

在JavaScript的情况下根据所述EC-理事会安全编程VOL.1主漏洞如下:

Cross Site Scriptting(XSS)。在XSS 攻击,攻击者通过插入 恶意的JavaScript,VBScript中, 的ActiveX,HTML或Flash进入弱势 动态页面提交客户端 可执行的脚本并执行 用户的机器脚本收集 用户的信息。

避免XSS

约束输入:

  • 定义一个决定至极字符problemetic代码页,
  • 限制变量来选择明确允许的字符。
  • 过滤元字符取决于解释器(HTML,浏览器和文件系统)

APLY规范化: - 规范化技术从验证输入之前brinbgs输入到一个适当的。

验证DE输入:

  • 验证为字段长度,数据类型,范围内的所有的外部输入,并且对于白名单以确保接受onlyknown毫无问题字符。

编码输出

  • 转换的元字符e.g:<,>和 “”,使用HTML实体来代替。
  • 对用户提供的输出进行编码,以防止任何插入的脚本以可执行形式传输给用户。

JavaScript Hijacking:允许 未授权方读取 机密信息。发生 ,因为大多数网页浏览器 实施安全模型不 预计使用Javascript的 通信。 JavaScrpt劫持是 一般通过 进行跨站请求伪造。 COSS站点 请求伪造的攻击,其中 使受害者可以向一个易受攻击的 网站申请一个或多个HTTP请求 。这种攻击危害数据完整性和机密性,意味着攻击者可以读取受害者的 信息并修改存储在易受攻击的站点上的信息 。

一个JavaScript 劫持攻击可以得到辩护:

  • 通过declinig恶意请求。
  • 通过阻止直接执行JavaScript响应。
+1

优秀!这更多的是我期待的反馈类型。 – vezult 2010-12-25 17:40:30