IOS安全编码指南 Secure Coding Guide -- 01 Introduction 下

IOS安全编码指南 Secure Coding Guide -- 01 Introduction

No Platform Is Immune

        platform |ˈplætfɔːm| noun 舞台

        immune |ɪˈmjuːn| adjective 有免疫力的

    So far, OS X has not fallen prey to any major, automated attack like the MyDoom virus. There are several reasons for this. One is that OS X is based on open source software such as BSD; many hackers have searched this software over the years looking for security vulnerabilities, so that not many vulnerabilities remain. Another is that the OS X turns off all routable networking services by default. Also, the email and internet clients used most commonly on OS X do not have privileged access to the operating system and are less vulnerable to attack than those used on some other common operating systems. Finally, Apple actively reviews the operating system and applications for security vulnerabilities, and issues downloadable security updates frequently.

        remain |rɪˈmeɪn| verb 逗留、剩下、保持不变

        routable 路由

        privilege |ˈprɪvəlɪdʒ| noun 特权、荣幸

        privileged |ˈprɪvəlɪdʒd| adjective 有特权的、荣幸的特许保密的

        issue |ˈɪʃuː,ˈɪsjuː| noun 问题 v 分发、发放

        frequently |ˈfriːkwəntli| adverb 经常地

    iOS is based on OS X and shares many of its security characteristics. In addition, it is inherently more secure than even OS X because each application is restricted in the files and system resources it can access. Beginning in version 10.7, Mac apps can opt into similar protection.

        character |ˈkærəktə(r)| noun 性格、特性、特征、符号

        characteristic |ˌkærəktəˈrɪstɪk| adj 独特的、典型的  noun 特征、特性

        strict |strɪkt| adjective 严厉的、明确的

        restrict |rɪˈstrɪkt| transitive verb 限制、约束

        similar |ˈsɪmɪlə(r)| adjective 相似的

        protection |prəˈtekʃn| noun 保护、防护物

    That’s the good news. The bad news is that applications and operating systems are constantly under attack. Every day, black hat hackers discover new vulnerabilities and publish exploit code. Criminals and script kiddies then use that exploit code to attack vulnerable systems. Also, security researchers have found many vulnerabilities(|ˌvʌlnərəˈbɪləti|) on a variety of systems that, if exploited(被利用), could have resulted in loss of data, allowing an attacker to steal secrets, or enabling an attacker to run code on someone else’s computer.

        constant |ˈkɒnstənt| adjective 不变的、持续的、不变的 noun 常数、恒量

        constantly |ˈkɒnstəntli| adverb 不断地、始终地

        criminal |ˈkrɪmɪnl| noun 罪犯

        variety |vəˈraɪəti| noun 多样化、一系列种类

    A large-scale, widespread attack is not needed    to cause monetary and other damages(如果攻击则希望获得金钱之类的,一个大规模的攻击是不必要的); a single break-in is sufficient if the system broken into contains valuable information. Although major attacks of viruses or worms get a lot of attention from the media(媒体), the destruction or compromising of data on a single computer is what matters to the average user.

        widespread |ˈwaɪdspred| adjective 分布广的、普遍的

        monetary |ˈmʌnɪtri, American -teri| adjective 货币的

        sufficient |səˈfɪʃnt|

        adjective 充足的、足够的

        major |ˈmeɪdʒə(r)| adj 严重的、重要的

        destruction |dɪˈstrʌkʃn| noun 毁灭、破坏、摧毁

        compromise |ˈkɒmprəmaɪz| v 危及

        average |ˈævərɪdʒ| noun 平均数 adj 一般水平的

    For your users’ safe, you should take every security vulnerability seriously and work to correct known problems quickly. If every Macintosh and iOS developer follows the advice in this document and other books on electronic security, and if the owner of each Macintosh takes common-sense(常识) precautions such as using strong passwords and encrypting sensitive data, then OS X and iOS will maintain their reputations for being safe, reliable operating systems, and your company’s products will benefit from being associated with OS X or iOS.

        seriously |ˈsɪərɪəsli| adverb 严肃地、认真地

        correct |kəˈrekt| adjective 正确的

        electronic |ˌɪlekˈtrɒnɪk| adjective 电子的

        common |ˈkɒmən| adjective 常见的、共同的、普通的 

        sense |sens| noun 感官、合理性 

        precaution |prɪˈkɔːʃn| noun 预防措施 

        caution |ˈkɔːʃn| n 小心、警告

        encrypt |enˈkrɪpt| transitive verb 编码

        sensitive |ˈsensətɪv| adjective 敏感的

        maintain |meɪnˈteɪn| transitive verb 维持

        reputation |ˌrepjʊˈteɪʃn| noun 名声

        reliable |rɪˈlaɪəbl| adjective 可靠的、准确的

        benefit |ˈbenɪfɪt| noun 益处 v 获益


How to Use This Document

    This document assumes that you have already read Security Overview.

    The document begins with Types of Security Vulnerabilities, which gives a brief introduction to the nature of each of the types of security vulnerability commonly found in software. This chapter provides background information that you should understand before reading the other chapters in the document. If you’re not sure what a race condition is, for example, or why it poses(构成) a security risk(风险), this chapter is the place to start.

    The remaining(v 遗留、逗留) chapters in the document discuss specific types of security vulnerabilities in some detail. These chapters can be read in any order, or as suggested by the software development checklist in Security Development Checklists.

  • Avoiding Buffer Overflows and Underflows describes the various types of buffer overflows and explains how to avoid them.
  • Validating Input and Interprocess Communication discusses why and how you must validate(|ˈvælɪdeɪt| v 证实验证) every type of input your program receives from untrusted sources.
  • Race Conditions and Secure File Operations explains how race conditions occur, discusses ways to avoid them, and describes insecure and secure file operations.
  • Elevating Privileges Safely describes how to avoid running code with elevated(|ˈelɪveɪt| v 抬起、提高、提升) privileges(|ˈprɪvəlɪdʒ| n 特权) and what to do if you can’t avoid it entirely(|ɪnˈtaɪəli| 完全的).
  • Designing Secure User Interfaces discusses how the user interface of a program can enhance or compromise(|ˈkɒmprəmaɪz| v 危及) security and gives some guidance on how to write a security-enhancing UI.
  • Designing Secure Helpers and Daemons(|ˈdiːmən| 后台驻留程序) describes how to design helper applications in ways that are conducive(|kənˈdjuːsɪv, American -ˈduː-| 有助于) to privilege separation(separation |ˌsepəˈreɪʃn| n 分居、分离).


    In addition, the appendix(|əˈpendɪks| n 附) Security Development Checklists provides a convenient(|kənˈviːnɪənt| adj 方便的) list of tasks that you should perform before shipping an application, and the appendix Third-Party Software Security Guidelines provides a list of guidelines(n 指导方针) for third-party applications bundled with OS X.




  • Avoiding Buffer Overflows and Underflows describes the various types of buffer overflows and explains how to avoid them.
  • Validating Input and Interprocess Communication discusses why and how you must validate(|ˈvælɪdeɪt| v 证实验证) every type of input your program receives from untrusted sources.
  • Race Conditions and Secure File Operations explains how race conditions occur, discusses ways to avoid them, and describes insecure and secure file operations.
  • Elevating Privileges Safely describes how to avoid running code with elevated(|ˈelɪveɪt| v 抬起、提高、提升) privileges(|ˈprɪvəlɪdʒ| n 特权) and what to do if you can’t avoid it entirely(|ɪnˈtaɪəli| 完全的).
  • Designing Secure User Interfaces discusses how the user interface of a program can enhance or compromise(|ˈkɒmprəmaɪz| v 危及) security and gives some guidance on how to write a security-enhancing UI.
  • Designing Secure Helpers and Daemons(|ˈdiːmən| 后台驻留程序) describes how to design helper applications in ways that are conducive(|kənˈdjuːsɪv, American -ˈduː-| 有助于) to privilege separation(separation |ˌsepəˈreɪʃn| n 分居、分离).
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值