信息安全
-
防火墙及其应用技术黎连业,张维,向东明编著本书较为详细地介绍了防火墙及其应用技术。内容包括防火墙的概念,防火墙的核心技术,保垒主机、数据包过滤、代理服务技术、软件防火墙、硬件防火墙、入侵检测技术等,同时对防火墙的选购策略和应用方案也做了较为详细的叙述。本书叙述清楚,语言通俗易懂。可供网络管理人员、大专院校计算机专业的师生和计算机网络用户阅读参考。 -
网络与信息安全蔡皖东编著本书从理论和实践相结合的角度,系统地介绍了网络信息安全的基本理论和应用技术。.全书分为上、中、下三篇共11章。上篇介绍网络信息安全基础,包括网络信息安全概论、网络信息安全威胁、密码技术、网络信息安全标准和模型等内容;中篇介绍信息交换安全技术,包括信息交换安全技术概述、数据链路层安全协议、网络层安全协议、传输层安全协议、应用层安全协议等内容;下篇介绍网络系统安全技术,包括网络系统安全技术概述、网络防护技术、网络检测技术、系统容灾技术等内容。..本书主要作为高等院校相关专业本科生的教材,也可作为相关专业研究生的教材,也可供从事网络系统安全技术工作的广大科技人员参考。... -
人件集(澳)Larry L.Constantine著;谢超等译*著名的《康斯坦丁人件集》的修订版*人件领域中的经典著作*大量的专栏文章全方位探讨软件开发中人的因素如果提到软件开发中人的因素,那么,没有谁能比LarryL.Constantine更有发言权了,全世界的开发人员和管理人员,都通过ConstantineonPeopleware(《康斯坦丁人件集》)一书认识了这位人件领域的大师,而这本书,也已经成为了人件领域中的经典著作。在本书中,康斯坦丁对《康斯坦丁人件集》一书中包含的52篇著名的专栏文章进行了重新的整理,并加上了25篇首次以书本形式发表的新文章。在软件开发中,我们经常会遇到各种各样的挑战,比如:技术问题和社会问题难以完全分割、心理学问题和控制论问题相互干扰、理论和实践相互交织,我们可以统称这类问题为“非人性化开发(no-man'sland)”问题。而本书所囊括的这些文章,对如何解决上述问题,起到了极其重要的指导性作用。本书所包含的范围也是极其广泛的,有:项目管理、团队开发、纪律与无序、工具、模型、方法、过程、个人特性、可用性,等等,而且,其实际包含的内容又远远超出了这些。《人件集——人性化的软件开发》包括了两个全新的部分:一个是组织文化,另一个是如何让软件对象更为可用——这部分文章中包括了Constantine提倡的“以使用为中心”的设计方法,这是一种突破性的方法,而且有关这方面内容的文章很难见到。 -
测试驱动开发(美)Kent Beck著;张平平[等]译;崔凯译代码整洁可用(clean code that works),Ron Jeffries这句言简意赅的话,正是测试驱动开发(TDD)所追求的目标。代码整洁可用之所以是一个值得追求的目标,是基于以下的一系列原因:§ 它是一个可预测的开发方法。你知道什么时候可以完工,而不用去担心是否会长期被bug困扰。§ 它给你一个全面正确地认识和利用代码的机会。如果你总是草率地利用你最先想到的方法,那么你可能再也没有时间去思考另一种更好的方法。§ 它改善了你的软件用户的生活§ 它让软件开发小组成员之间相互信赖§ 这样的代码写起来感觉很好但是我们要怎样做才能使代码整洁可用呢?很多因素妨碍我们得到整洁的代码,甚至是可用的代码。无需为此征求很多的意见,我们只需用自动运行的测试来推动开发,这是一种被称之为测试驱动开发的开发方式(TDD)。在测试驱动开发中,我们要这样做:§ 只有自动测试失败时,我们才重写代码§ 消除重复设计,优化设计结构这是两条很简单的规则,但是由此产生了复杂的个人和小组行为规范,技术上的含意是:§ 我们必须通过运行代码所提供的反馈来做决定,并以此达到有机设计的目的。§ 我们必须自己写测试程序,这是因为测试很多,很频繁,我们不能每天把大量的时间浪费在等待他人写测试程序上§ 我们的开发环境必须能迅速响应哪怕是很小的变化§ 为使测试简单,我们的整个规划必须是由许多高内聚、低耦合的部分组成这两条规则实际上蕴含了开发过程中所经历的阶段:§ 不可运行──写一个不能工作的测试程序,一开始这个测试程序甚至不能编译§ 可运行──尽快让这个测试程序工作,为此可以在程序中使用一些不合情理的方法§ 重构──消除在让测试程序工作的过程中产生的重复设计,优化设计结构不可运行/可运行/重构──这就是测试驱动开发的口号现在假设这样的开发方式是可能的,那么,进一步,显著地减少代码的错误密度(defect density),让所有参与某一工作的开发人员对工作主题足够明了的假定也将成为可能。如果是这样的话,那么只有测试失败时才需要重写代码,其社会意义是:§ 如果代码的错误密度能够充分地减少,那么软件的质量保证(QA)工作可以由被动保证软件质量转变为主动保证软件质量§ 如果开发过程中令人不快的意外能够充分地减少,那么项目经理能对软件开发进度有一个精确的把握,以让实际用户参与日常开发§ 如果每次技术讨论的主题都足够明确,那么软件工程师之间的合作是以分钟计算的,而不是每天合作或每周合作§ 再者,如果代码错误密度能够充分地减少,我们每天都可以得到有新功能的软件成品(shippable),并以此产生新的商业关系如此说来,观念是很简单的,但我的动机是什么呢?为什么一个软件工程师要做额外的写自动测试程序的工作?为什么一个设计观念可以瞬息万变的软件工程师却只能一小步一小步地进行工作?我们需要的是勇气。勇气测试驱动开发是一种可以在开发过程中控制忧虑感的开发方法。我并非指那些毫无意义的没有必要的担忧──(pow widdle prwogwammew needs a pacifiew)──而是指合理的担忧,担忧是否合理是个很困难的问题,不能从一开始就看出来。如果说疼痛自然就会叫 "停!",那么担忧自然就会说"细心!",小心谨慎是好的,但它也会产生以下一系列负面影响:§ 让你一直处于试验性的阶段。§ 让你不愿意与他人交流。§ 让你羞于反馈。§ 让你变得脾气暴躁。这些负面影响对编程都是有害无益的,尤其是当需要编程解决的问题比较困难的时候。所以问题变为当我们面临一个比较困难的局面的时候,如何才能做到:§ 尽快开始具体的学习,而不是一直处于试验性的阶段。§ 更多地参与交流和沟通,而不是一直拒不开口§ 寻找那些有益的、建设性的反馈,而不是尽量避免反馈§ (依靠自己改掉坏脾气)设想把编程看成是转动曲柄从井里提一桶水上来的过程。如果水桶比较小,那么仅需一个能自由转动的曲柄就可以了。如果水桶比较大而且装满水,那么还没等水桶全部被提上来你就会很累了。你需要一个防倒转的装置,以保证每转一次可以休息一会儿。水桶越重,防倒转的棘齿相距越近。测试驱动开发中的测试程序就是防倒转装置上的棘齿。一旦我们的某个测试程序能工作了,你就知道,它从现在开始并且以后永远都可以工作了。相比于测试程序没有通过,你距离让所有的测试程序都工作又近了一步。现在我们的工作是让下一个测试程序工作,然后再下一个,就这样一直进行。分析表明,要编程解决的问题越难,每次测试所覆盖的范围就应该越小。我的《Extreme Programming Explained》一书的读者可能会注意到我讲极限编程(XP)与讲测试驱动开发的语气是有区别的:讲测试驱动开发不像讲极限编程那么绝对。讲极限编程时我会说"这些是想进一步学习所必须具备的基础",而讲测试驱动开发时要模糊一些。测试驱动开发知道编程过程中的反馈与欲实现的构思之间的差距,并且提供了控制这个差距大小的技术。"如果我在纸上规划一周,然后通过测试驱动编码,这是否就是测试驱动开发?"当然,这就是测试驱动开发。你知道欲实现的构思与反馈之间的差距,并且有意识地控制了这个差距。绝大多数学习测试驱动开发的人发现他们的编程习惯被永久地改变了。"测试感染"(Test Infected)是Erich Gamma所杜撰的用以描述这种转变的词语。你可能发现写测试程序变得容易了,并且相对较小的工作节奏比前所梦想的节奏更明智。另一方面,一些学习测试驱动开发的软件工程师重回到了以前的程序开发方法,而保留测试驱动开发方法作为当其它开发方法不能奏效的特殊情况下的秘密武器。当然也存在一些编程任务不能仅仅(或者根本就不能)由测试程序来驱动开发。举个例子来说,软件的安全性和并行性,测试驱动开发方法就不能充分地从机械证明的角度说明软件是否达到这两个目标。软件安全性从本质上来说依赖于无缺陷的代码。确实如此,但它同时也依赖于人们对软件安全机制的判断。精妙的并行问题不是仅靠再次运行代码就能可靠地重复出现的。一旦你读完本书,你要准备:§ 从简单的例子开始。§ 写自动测试程序。§ 重构,每次增加一个新的设计构思。这本书是由三个部分组成的:§ 第一部分,资金实例(The Money Example)── 一个典型的完全由测试驱动的代码模型的例子。这个例子是几年前我从Ward Cunningham那儿得到的,并且自从引入多币种算法以来已经多次用到过。你将从中学会如何在写代码之前写好测试程序,并最终发展成为一个有机的规划方案§ 第二部分,xUnit实例(The xUnit Example)── 一个通过建立自动测试框架来测试包含映像(reflection)和异常(exception)的逻辑上更复杂的程序的例子。这个例子同时也将向你介绍作为许多面向程序员的测试工具灵魂的xUnit结构体系。在第二个例子中你将学会以甚至比第一个例子更小的开发步骤工作,同时也包括深受许多计算机专家喜爱的呼喊式的自我提醒(self-referential hooha)。§ 第三部分,测试驱动开发模式(Patterns for Test-Driven Development)──包括决定写哪些测试的模式,如何用xUnit写测试的模式和大量的设计模式精选以及例子中所用到的重构。我写了关于结对编程(pair programming)的例子。如果你习惯于在四处转一转之前先看一看地图的话,你可以直接到第三部分去看那些模式,并将那些例子作为说明。如果你习惯于先到四处转一转,然后再看地图以确定自己处于什么位置的话,试着通读例子,当你需要了解更多关于某一技术问题的细节时,可以查阅后面所讲的模式,并将这些模式作为参考。一些批评家指出,当他们启动编程环境,输入代码,运行所读到的测试程序时,最大的收获却在这些例子之外。关于这些例子要注意一点。这两个例子,多币种计算和测试框架,显得很简单。而解决同一个问题却也存在(我曾经见到过)一些复杂、风格很差、近乎弱智的解决方案。我本可以从这些复杂、风格很差、近乎弱智的解决方案中采用一个以使本书有一种"真实"感。然而,我的目标是写出整洁可用的代码,希望你的目标也是这样。在以那些被认为很简单的例子开始之前,花15秒的时间设想一下,如果所有的代码都能如此清晰和直接,没有复杂的解决方案,只有显然需要认真思考的很复杂的问题,那么这个世界会是什么样子。测试驱动开发可以引导你这样去认真思考。 -
计算机信息安全李成大等编本书着重从实用角度讲解计算机信息安全的基本概念、基本原理和技术方法,同时也注意到了该书系统型和先进性。本书内容新颖翔实、覆盖面广、实例丰富,语言文字通俗易懂,各章重点,难点突出,技术和方法的阐述融合于丰富的实例之中,各章均配有习题和实例,便于教学和自学。本书可作为高职高专“信息安全”课程的教材或教学参考书。也可供从事信息安全的工程技术人员管理人员阅读参考。本书在回顾信息安全发展的基础上,总结了信息安全的特征,全面介绍信息安全的概念、原理和知识体系,主要包括实体安全与防护、计算机软件安全技术、备份技术、密码技术、认证与数字签名、网络安全技术、防火墙及入侵检测技术、操作系统与网站安全、E-mail安全与网络加密、数据库系统安全、计算机病毒及防治以及实训等方面的内容。本书讲述力求深入浅出,通俗易懂,注重科学性与实用性,并配有精选实例、习题和实训,便于教学和自学。本书可作为高职高专计算机类、信息技术类等专?档慕滩模部晒┐邮滦畔⒋怼⑼ㄐ疟C堋⒕轮富拥茸ㄒ倒こ碳际跞嗽焙凸芾砣嗽痹亩粒币部勺魑绻芾碓焙透鋈艘蛱赝没У牟慰际椤? -
绝密隐私杨劲编著你担心过自己电脑中的商业机密和个人隐私的安全吗?的确,电脑已经在我们日常工作和生活中充当了非常重要的角色。各种数据都储存在电脑中,一旦这些数据丢失或被盗,将给电脑用户带来无法弥补的损失。设置密码是保护电脑数据的重要措施之一,本书就为用户深入浅出地介绍了密码的设置和恢复,以系统、软件、邮件、网游、网络通讯等多方位的密码攻防以及网络入侵实例,让读者轻松掌握各种密码知识,全面保护电脑系统的安全。 -
黑客攻击测试篇(美)John Chirillo著;黄江海[等]译;黄江海译本书由著名安全专家John Chirillo撰写而成,讲解了如何自己进行安全审核。本书内容针对性强,采取循序渐进的方式,向读者介绍了“老虎盒”操作系统的安装和配置,同时讲述了当前最流行的安全审核软件套件,讨论了通用的和定制的安全审核用法,以及扫描方式和对每个过程的报告,分析了单个漏洞扫描器的结果,并对各扫描器针对目标网络上的一组故意设置的安全漏洞的测试结果进行了比较。 本书内容翔实,讲解透彻,不仅适合作为系统管理员、安全工程师、网络管理员、网络工程师的参考书,而且也适用于感兴趣的普通读者。 本书深入讨论了以下主题: 构建多系统的”老虎盒” 用于审核的基本Windows 2000服务器的安装和配置 用于审核的基本Linux和Solaris的安装和配置 用于审核的基本Mac OSX的安装和配置 ISS、CyberCop、Nessus、SAINT和STAT扫描器 用于Mac OS X的安全分析工具 漏洞评估 -
敏捷软件开发生态系统(美)Jim Highsmith著;姚旺生,杨鹏等译;姚旺生译本书全面论述了敏捷软件开发生态系统的有关内容,阐述了变化驱动的信息时代经济的关键特征,介绍各个敏捷软件开发生态系统,提供各种类型的项目,展示了一个敏捷软件开发生态系统的实例。总之,通过本书的学习,读者能够了解到敏捷软件开发生态系统方面的基础知识、前沿方法和先进理念,并在学习和工作中受益。本书简明、易懂、实用性强,适于计算机软件专业的专科生、本科生和研究生使用,也可作为相关从业人员的参考用书。在一个瞬息万变的软件开发环境中,开发者必须十分灵活,反应迅速,能够实现不断变化的目标——简而言之,他们必须十分敏捷。敏捷软件开发的目的是满足对速度和灵活性的需要。敏捷软件开发吸收了既有软件工程技术的精华,又避免了传统软件开发方法的局限,为软件工程开创了新的方向。本书对敏捷软件开发方法进行了全景展示。作者是敏捷软件开发运动的领导人之一,在与其他的敏捷领导人KentBeck、RobertCharette、AlistairCockburn、MartinFowler、KenSchwaber和WardCunningham面谈之后完成了本书。本书深入剖析这种灵活而又极其成功的软件开发新思维,提出所有敏捷开发方法的核心实践,提供对各种特定技术的总体看法,并阐述如何去选择最适合自己组织的方法。本书深刻描述最重要的敏捷开发原理:交付对客户有价值的东西,关注开发者个人及其技能,强凋协作和可以工作的软件产品,以及技术卓越的重要性。这些敏捷方法包括:Scrum动态系统开发方法Crystal方法特性驱动开发精益开发极限编程自适应软件开发 -
系统分析与设计教程(美)Cary B.Shelly,(美)Thomas J.Cashman,(美)Harry J.Rosenblatt著;李芳[等]译;李芳译本书全面讨论了系统开发生命周期的方方面面,从商业案例分析、需求建模、企业建模、开发策略。数据设计。用户界面设计。系统结构、系统实施和支持到最新的发展趋势,内容丰富,信息全面,完美地结合了理论和实践工具。专门制作的各种练习更是精彩纷呈,从传统的习题到基于Web的测试,可使学生通过多种途径进行实践,达到融会贯通。本书特点:●每章开篇以一个学院书店的案例生动地展示该章的关键目标和任务●“网络资源”部分使学生可以通过Web链接了解一些重要主题的附加信息●“见仁见智”部分提出多个问题,探讨不同观点,鼓励大家进行辨证的思考,可作为课堂讨论的话题●“在线学习”部分为学生提供基于Web的练习、测试甚至游戏●“本章练习”部分包括复习题、讨论主题以及项目实践,使学生有机会练习各章中学到的概念和技能●“知识应用”部分提供4个小型案例,让学生在真实的场景中应用所学的知识和技能●“案例模拟”部分围绕一个独特的、基子Web的交互式案例展开讨论●系统分析员工具包涉及系统开发各个阶段的工具,包括交流工具,CASE工具、财务分析工具、项目管理工具、面向对象工具以及Internet资源工具●附带光盘为学生提供了大量图片和在线链接,帮助掌握各章中的内容●教师资源光盘为教师提供了成功教学所需的各种辅助工具本书是一部介绍信息系统分析与设计原理、方法、技术、工具和应用的力作。全书采用几个完整的案例,以整个信息系统开发生命周期为主线,详细探讨了系统规划、系统分析、系统设计、系统实施以及系统运行与支持等各个阶段的活动,并介绍了交流工具、CASE工具、财务分析工具、项目管理工具以及Internet资源工具等系统分析员所必备的工具包信息,充分体现其实践性。在每一章后还提供了大量的复习题、讨论题和小型应用案例,用以加深理解。本书内容丰富,详实生动,特别适合作为高等院校计算机和信息系统专业本科生、研究生的教科书,同时也可作为软件工程、系统分析技术人员的参考书。 -
用例通过背景环境获取需求(美)Daryl Kulak,(美)Eamonn Guiney著;韩柯,杨柳青等译;韩柯译本书介绍了如何通过基于用例的过程采集和定义软件需求.以便系统分析人员和设计人员可以运用用例为最具挑战性的需求问题提供解决方案.产生满足用户需求的高质量的系统。本书着重阐述了一种确定需求的三步法,即—种渐进地精化需求的迭代过程。作者利用自己丰富的实践经验,为用例驱动的生存周期、变更规划和跟踪提供了很有价值的建议。此外,本书还给出大量例子说明如何实际应用这种方法。本书第2版吸收了最近几年用例方法论的很多最新研究成果,更新了用例方法论的迭代,以及管理层如何应对当前快节奏的、更加“混沌”的软件生命周期方面的内容。通过用例图和场景描述参与者和应用系统之间的关系和交互背景环境。描述功能和非功能需求。创建候选用例清单。分解用例,并在用例图上补充细节。为用例补充触发条件、前提、基本事件过程和异常。管理迭代/渐进用例驱动的项目生命周期。跟踪用例、非功能需求和业务规则。如何避免常见的错误。本书还介绍了大量当前可用的工具,供读者开发时使用。本书介绍了通过用例来采集用户需求,为实际的需求问题提供解决方案,从而产生满足用户要求的高质量的系统。本书作者极具实践经验,他们将自己的经历融入书中,从需求中遇到的问题谈起,阐述了使用用例的必要性,用例的基本知识,通过用例确定需求的三步法等内容,并对用例驱动的生命周期、跟踪等方面给出了有价值的建议。书中还包含大量的实例以供读者参考。本书主题鲜明,结构清晰,实用性强,适合软件需求工程师、设计人员、项目经理阅读,也适合作为相关专业的本科生、研究生的参考读物。
