用动态语言进行安全编程

时间:2009-04-23 03:38:32

标签: security

C,C ++及其同类内存管理中的错误是众所周知的。我主要使用动态,弱类型语言编程。是否存在这类语言特别重要的问题?我可以留意哪些语言特定的问题?

我一般都注意到标准的安全问题,并试着考虑代码被滥用的方式,但我确信我可以做出很多不那么肤浅的错误,而且我有兴趣扩展我的知识。这个地区。

4 个答案:

答案 0 :(得分:2)

如果您使用类似于eval()的任何内容,则存在攻击风险,尤其是如果您信任应用程序外部的某些内容。

答案 1 :(得分:2)

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

答案 2 :(得分:1)

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

答案 3 :(得分:1)

就JavaScript而言,根据 EC-Council Secure Programmer Vol.1 的主要漏洞如下:

  

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

避免使用XSS

约束输入:

  • 定义一个代码页,决定哪些字符有问题,
  • 限制变量以选择明确允许的字符。
  • 根据解释器(HTML,浏览器和文件系统)过滤元字符

Aply规范化: - 在验证输入之前,规范化技术将输入提供给适当的。

验证输入:

  • 验证字段长度,数据类型,范围和白名单的所有外部输入,以确保只接受已知的无问题字符。

编码输出

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

JavaScript Hijacking:允许   未经授权的一方阅读   机密信息。发生   因为大多数网络浏览器都是   实现安全模型不要   期待使用Javascript   通讯。 JavaScrpt劫持是   一般通过进行   跨站请求伪造。科斯现场   请求伪造攻击   使受害者能够汇总一个或   对易受攻击者的更多HTTP请求   网站。这种攻击会破坏数据   诚信和保密,意义   攻击者可以阅读受害者的   信息和修改信息   存储在易受攻击的网站上。

可以保护Javascript 劫持攻击:

  • 通过拒绝恶意请求。
  • 阻止直接执行JavaScript响应。