首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 开源 FAQ 第二书店 博文视点 程序员
频道: 研发 数据库 中间件 信息化 视频 .NET Java 游戏 移动 服务: 人才 外包 培训
    图书品种:235680
       
热门搜索: ASP.NET Ajax Spring Hibernate Java

1.7  本章小结

理解编程语言对于查找漏洞和编写exploit代码来说是必要的。程序员如果要为Java程序编写一个缓冲区溢出exploit,那么就是在浪费时间。同样,理解编程语言和底层系统的交互方式,对于编写shellcode也是很重要的。最后,本章还介绍了4种流行编程语言的基本编程指令和特性。

本章讨论的每种语言都有其自身的优缺点。这4种语言也有一些共性,包括数据类型和基本编程概念,如函数和循环等。10多年前,C仍然是很有用的语言,是快速创建强大程序的简单而高效的语言。因此,当程序与UNIX操作系统交互时,通常用C语言来编写漏洞探测代码。较新的一些语言,比如JavaC#(以及.NET框架),提供了可移植性和安全性等特性。将类和函数标记为private就可以实现数据隐藏。自动垃圾收集器提供了排除代码中的bug和内存泄漏的功能。编程语言可以避免以前类中可能出现的漏洞。JavaC#使用自动数组边界检测,有效防止了栈和堆溢出。

在没有语言支持安全特性的时候,Web应用程序员必须研究所有的输入、输出以及应用程序的函数所必需的限制性字符。在和后端数据库交互时必须进行审核,以确保没有SQL(Structured Query Language,结构化查询语言)命令被注入到数据库中。

PerlPython都是强大的、流行的、很有用的脚本语言。其他流行的脚本语言还有RubyUNIX C/Korn/Bourn ShellVBScriptSQL。在开发程序的时候,使用脚本语言比使用解释型编程语言具有更多好处,但是主要的动力都在于快速开发和易于使用。一般来说,能快速创建脚本,这主要得益于解释器的优点,这些优点是编译器不具备的。字符串处理和套接字的使用是PerlPython的两种最流行的特性。字符串匹配、比较和处理的需求极大地推动了正则表达式的成熟发展,目前大多数高级脚本语言都包含了这一特性。最终用户可以使用这些特性来创建脚本,用其解析和分析大量的数据,以生成智能输出。

脚本语言可以协助完成频繁冗长的任务。如果一项任务每天要做很多次,就要考虑该任务是否能通过自动执行脚本来完成,可以通过内嵌时间控制器来自动执行这些脚本。

查看所有评论(0)条】

最近评论



正在载入评论列表...
热点评论