安全编码规范.docx

合集下载

安全编码规范

安全编码规范

安全编码规范⼀.上线前通⽤安全开发要求1.使⽤“经测试和可信的平台/框架代码”开发应⽤程序2.应⽤系统应当保持对所依赖的框架、第三⽅组件的更新,以避免出现已知漏洞3.应⽤程序就避免于页⾯(HTML、JavaScript)中包含技术性注释语句、功能说明或解释等信息4.应⽤系统上线前,应删除相应的测试内容,包括但不限于:测试页⾯、测试⽤例、测试代码、控制台输出等5.应⽤系统部署后,应删除默认部署页⾯,禁⽌留存SVN/Git相关⽂件、备份⽂件等6.如果应⽤软件部署在客户端,例如移动APP,应使⽤混淆、签名、加固等措施防⽌逆向获取源代码⼆.输⼊验证与输出净化(⼀切输⼊都是有害的,应当对所有输⼊的参数进⾏合法性、合理性校验)1.应⽤系统应对所有输⼊的参数进⾏合法性、合理性验证,拒绝接受验证失败的数据,包括但不限于验证数据的类型、长度、格式、范围和内容等。

对于输⼊数据范围可确定的场景,合法性检测建议使⽤“⽩名单”的⽅式(⽐如:⽇期、⾝份证号、银⾏卡号、⼿机号、数字等可明确格式的数据,须在服务器端验证格式是否正确)对于输⼊数据范围不确定的场景,合法性检测可采⽤“⿊名单”的⽅式(⽐如:在可⾃由输⼊的⽂本框过滤或转义SQL关键字、HTML标签、XML标签、单引号、双引号、路径字符、换⾏符、空字节等)根据实际情况设置⿊⽩名单,避免影响业务正常使⽤。

2.应⽤系统应对所有输出到客户端、操作系统、web页⾯等位置的数据进⾏编码或过滤净化,避免潜在危险字符,导致安全问题发⽣,包括但不限于:SQL注⼊漏洞、XSS漏洞、命令注⼊漏洞等。

危险字符如\ ' " .. / \r \n < > ^ | ! ` * ( ) & ; - : %等,应当在服务器端进⾏安全过滤或转义编码。

三.⾝份验证与权限控制1.密码输⼊界⾯应采取安全保护措施,包括但不限于:不以明⽂形式显⽰密码、利⽤图形验证码防⽌暴⼒破解等。

安全编码规范

安全编码规范

安全编码规范版本号:V1.0修订页目录1 目的......................................................................................................... 错误!未定义书签。

2 背景......................................................................................................... 错误!未定义书签。

3 安全编码规范 (5)3.1 输入验证和数据合法性校验 (5)3.1.1 避免SQL注入 (5)3.1.2 避免XML注入 (5)3.1.3 避免跨站点脚本(XSS) (5)3.2 声明和初始化 (6)3.2.1 避免类初始化的相互依赖 (6)3.3 表达式 (7)3.3.1 不可忽略方法的返回值 (7)3.3.2 不要引用空指针 (7)3.3.3 使用Arrays.equals()来比较数组的内容 (8)3.4 数字类型和操作 (8)3.4.1 防止整数溢出 (8)3.4.2 避免除法和取模运算分母为零 (9)3.5 类和方法操作 (9)3.5.1 数据成员声明为私有,提供可访问的包装方法 (9)3.5.2 敏感类不允许复制 (9)3.5.3 比较类的正确做法 (10)3.5.4 不要硬编码敏感信息 (10)3.5.5 验证方法参数 (10)3.5.6 不要使用过时、陈旧或低效的方法 (11)3.5.7 数组引用问题 (11)3.5.8 不要产生内存泄露 (11)3.6 异常处理 (12)3.6.1 不要忽略捕获的异常 (12)3.6.2 不允许暴露异常的敏感信息 (12)3.6.3 不允许抛出RuntimeException, Exception,Throwable (13)3.6.4 不要捕获NullPointerException或其他父类异常 (14)3.7 多线程编程 (15)3.7.1 确保共享变量的可见性 (15)3.7.2 确保共享变量的操作是原子的 (16)3.7.3 不要调用Thread.run(),不要使用Thread.stop()以终止线程 (17)3.7.4 确保执行阻塞操作的线程可以终止 (17)3.7.5 相互依存的任务不要在一个有限的线程池执行 (18)3.8 输入输出 (18)3.8.1 程序终止前删除临时文件 (18)3.8.2 检测和处理文件相关的错误 (18)3.8.3 及时释放资源 (19)3.9 序列化 (20)3.9.1 不要序列化未加密的敏感数据 (20)3.9.2 在序列化过程中避免内存和资源泄漏 (20)3.9.3 反序列化要在程序最小权限的安全环境中 (22)1安全编码规范1.1 输入验证和数据合法性校验程序接受数据可能来源于未经验证的用户,网络连接和其他不受信任的来源,如果未对程序接受数据进行校验,则可能会引发安全问题。

代码安全编码规范

代码安全编码规范

代码安全编码规范在计算机科学领域中,代码安全是至关重要的。

为了保护软件系统免受恶意攻击和漏洞利用的威胁,开发人员需要遵循一套严格的代码安全编码规范。

本文将介绍一些重要的规范和最佳实践,以帮助开发人员编写更安全的代码。

I. 代码注释规范良好的注释是代码可读性和可维护性的关键。

以下是一些建议:1. 在每个文件的开头添加版权和许可信息的注释,以明确代码的所有权和使用许可。

2. 在每个函数和方法的开头添加注释,描述其功能和输入/输出要求。

3. 注释应使用清晰简洁的语言编写,避免使用模糊或不恰当的术语。

4. 避免在注释中包含敏感信息,如API密钥或密码。

II. 输入验证和过滤异常输入是许多安全漏洞的根源。

开发人员应遵循以下准则:1. 对所有输入进行验证,包括用户输入、外部数据和网络请求等。

2. 使用白名单机制来验证输入,而不是黑名单机制。

即,只接受已验证的输入,而不是排除已知的恶意输入。

3. 对输入进行适当的过滤,删除或转义特殊字符,以防止跨站脚本攻击(XSS)和SQL注入等安全漏洞。

4. 针对不同类型的输入数据(例如数字、日期、邮箱地址等)使用适当的验证方法。

III. 密码和身份验证密码和身份验证是保护用户数据和系统安全的重要环节。

以下是一些建议:1. 存储密码时,应使用安全的哈希函数和加密算法,并加盐(salt)以增加破解的难度。

2. 鼓励用户选择强密码,并对密码进行复杂度检查。

3. 定期更新敏感数据(如密码)的加密算法和哈希函数,以适应新的安全标准。

4. 使用多因素身份验证(例如短信验证码、指纹识别等)来增强身份验证的安全性。

IV. 安全的数据存储与传输保护数据的机密性和完整性对于防止数据泄露和篡改至关重要。

以下是一些建议:1. 存储敏感数据(如用户密码和个人身份信息)时,应使用加密算法进行保护。

2. 对于网络传输的数据,使用安全的传输协议(例如HTTPS)进行保护。

3. 避免在URL中传递敏感数据,以防止数据泄露。

安全编码规范

安全编码规范

安全编码规范
现代计算机应用程序的发展必须遵循一定的规范,以便在指定的环境下满足功能要求,达到安全、可靠、可维护的目的。

因此,安全编码规范作为一种编码规范,具有重要的意义和作用。

安全编码规范是指用于设计程序的可重复性和可靠性的全部标准,它包括编码规范,程序文档规范,测试规范和技术标准等。

它不仅可以提高软件产品的质量,而且可以提高应用程序的安全性,从而确保应用程序运行的安全性和稳定性。

在安全编码规范中,程序文档规范包括源代码的编写规范、文件结构规范、标签声明规范和命名规范等,它们主要解决程序的可读性、可维护性和可调试性问题。

它们有助于提高软件质量和降低软件故障率,也可以提高软件的可审计性。

此外,测试规范是安全编码规范中最重要的一部分。

它要求编码者制定可执行的测试程序,以便对应用程序进行全面的测试,以发现程序中的问题,及时修正漏洞。

它们可以帮助程序员有效地确定程序中存在的安全问题,有效地避免安全风险的发生。

最后,技术标准是安全编码规范的一个重要组成部分,它的目的是确保编程者和应用程序运行环境的稳定性和可靠性。

它关注的范围涉及到操作系统、网络协议、存储设备、软件开发框架等多方面。

总之,安全编码规范是现代计算机应用程序开发的基本准则,其中包含了编码规范、程序文档规范、测试规范和技术标准等多方
面的内容。

安全编码规范有助于提高程序的质量和可靠性,可以有效地确保应用程序的安全和稳定。

它对编码者的技术要求较高,但只有遵守安全编码规范,才能保障应用程序的安全性和可靠性。

安全代码编写规范

安全代码编写规范

安全代码编写规范(总4页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--安全代码编写规范一、编写目的为加强武汉楚烟信息技术有限公司在软件开发中的安全规范要求,减少应用上线后带来潜在的安全风险,特拟定安全代码编写规范。

二、使用范围本规范适用于武汉楚烟信息技术有限公司承建的各类开发类的软件类项目。

三、应用安全设计在总体架构设计阶段,需明确与客户方沟通确认甲方对于软件安全的相关要求,对于有明确安全要求的(例如授权管理要求、用户认证要求、日志审计要求等),须在设计文档中予以详细说明。

对于互联网应用,务必明确网络安全、应用安全、数据安全相关的安全防护手段。

在技术架构上,应采用表现层、服务层、持久层分类的架构,实现对底层业务逻辑进行有效隔离,避免将底层实现细节暴露给最终用户。

在部署架构上,应采用应用服务器、数据库服务器的分离部署模式,在应用服务器被攻击时,不会导致核心应用数据的丢失。

如软件产品具备有条件时,应优先采用加密数据传输方式(例如https协议)。

在外部接口设计方面,应采用最小接口暴露的原则,避免开发不必要的服务方法带来相关安全隐患,同时对于第三方接口,应共同商定第三方接入的身份认证方式和手段。

四、应用安全编码. 输入验证对于用户输入项进行数据验证,除常见的数据格式、数据长度外,还需要对特殊的危险字符进行处理。

特殊字符包括 < > " ' % ( ) & + \ \' \"等对于核心业务功能,除在客户端或浏览器进行数据验证外,还必须在服务器端对数据进行合法性检验,规避用户跳过客户端校验,直接将不合规的数据保存到应用中。

对于浏览器重定向地址的数据,需要进行验证核实,确认重定向地址是否在可信,并且需要对换行符(\r或\n)进行移除或者替换。

. 数据输出对需要输出到用户浏览器的任何由用户创造的内容,应在输出到浏览器之前或持久化存储之前进行转义(至少对<>转义为&lt; &gt;)以防止跨站攻击脚本(XSS)。

安全编码规范

安全编码规范

安全编码规范安全编码规范对于保障软件和系统的安全性至关重要,下面是一份安全编码规范的简要说明,包括输入验证、身份验证和授权、数据保护和错误处理等方面的内容。

1. 输入验证确保对所有输入数据进行有效的验证,包括长度、类型、格式等方面。

禁止使用动态SQL语句,避免SQL注入攻击。

禁止使用eval()函数或类似函数,避免任意代码执行。

禁止使用不安全的文件操作函数,避免文件包含漏洞。

2. 身份验证和授权对用户身份进行验证,确保只有合法用户可以访问系统。

使用强密码策略,要求密码长度和复杂度。

确保所有敏感操作都需要进行身份验证后才能执行。

限制用户权限,仅赋予其所需的最低权限。

3. 数据保护使用加密算法对敏感数据进行加密存储,确保数据在传输和存储过程中不被窃取或篡改。

对于敏感数据,采用数据脱敏的方式进行展示,避免隐私泄露。

设置合适的访问控制机制,确保只有被授权的用户可以访问敏感数据。

4. 错误处理对于发生的错误,不要返回具体的错误信息,避免给攻击者提供攻击的线索。

使用日志记录系统的异常和错误信息,方便追踪和排查问题。

对于异常情况,及时通知相关人员进行处理,避免漏洞被滥用。

5. 安全更新和漏洞修复定期检测和分析软件和系统的漏洞,并及时安装安全更新和补丁。

建立漏洞跟踪和反馈机制,及时修复发现的漏洞,并进行风险评估。

6. 安全审计和监控建立安全审计和监控机制,对系统的访问和操作进行监控。

及时发现异常行为,包括恶意访问、篡改等,并采取相应的措施进行防御。

定期进行安全审计和渗透测试,发现和修复潜在的安全问题。

7. 开发过程和团队安全意识重视开发过程中的安全问题,对代码进行安全审查和测试。

提高开发人员的安全意识,加强安全培训和教育。

建立安全开发规范和最佳实践,确保代码的安全性和可靠性。

总结起来,安全编码规范是保障软件和系统安全的关键一环。

通过有效的输入验证、身份验证和授权、数据保护和错误处理等措施,可以减少安全漏洞的出现,提高系统的安全性和可靠性。

安全编码规范

安全编码规范

安全编码规范随着企业数字化转型的加速和互联网的普及,软件安全问题也越来越引起人们的关注。

软件漏洞或缺陷可能导致严重的安全问题,给企业甚至国家带来不可估量的损失。

为此,制定一套合理的安全编码规范,对于开发人员和企业的信息安全都至关重要。

1. 安全编码规范的概述安全编码规范是制定软件开发过程中必要的方法和步骤,以确保软件设计和代码符合安全标准和最佳实践。

它旨在预测和预防黑客攻击、恶意软件等安全问题。

安全编码规范应包含以下内容:•命名规则:变量、常量、函数、文件等的命名应该有规则,以便于代码理解和维护。

•输入校验:应该对所有用户输入的数据进行校验,以避免无效输入,避免受到SQL注入攻击等。

•数据加密:敏感数据传输应该进行加密,确保数据不会被黑客窃取。

密码应该加密存储。

•错误处理:代码应该能够处理异常和错误情况,并且能够适当地记录日志。

•访问控制:应该有适当的访问控制机制,以确保只有授权用户可以访问数据和资源。

•代码审查:应该对代码进行定期和全面的审查,以便及时发现和修复安全漏洞。

2. 编码规范的重要性制定安全编码规范的重要性有以下几点:•遵循最佳实践:安全编码规范是一种最佳实践,可以帮助开发人员采取正确的方法和步骤来开发安全的代码。

•避免安全问题:按照安全编码规范开发的应用程序,可以避免很多安全问题,从而减少安全漏洞对企业造成的损失。

•提高应用程序质量:安全编码规范可以帮助开发人员编写更可读、简洁、易于维护的代码,同时提高应用程序的质量和稳定性。

*体现企业责任:制定和实施安全编码规范可以显示企业的安全和责任意识,增强客户和业务伙伴的信任。

3. 安全编码规范的实施安全编码规范必须实施,才能发挥其预期的效果。

以下是实施安全编码规范的几个步骤:3.1 常规培训安全编码规范的第一步是开展培训,培训旨在使开发人员了解编码规范、展示最佳实践,并提供指导。

理论课程可以构建知识框架,讲课程可以帮助开发人员正确地应用这些知识。

安全编码规范

安全编码规范

安全编码规范安全编码规范是指为了保障软件系统的安全性、稳定性和可靠性,对编写代码的规范进行约束,以防止潜在安全隐患和漏洞的出现。

下面是一个关于安全编码规范的1000字的简要说明:1. 在编写代码时,要遵循最小权限原则。

即尽量将权限限制在最低级别,只给予必要的权限,以防止恶意攻击者利用高权限进行攻击。

2. 在处理用户输入时,要进行输入验证,防止恶意输入和注入攻击。

可以使用正则表达式或者特定的输入验证函数进行验证,严禁直接使用用户输入作为命令或者查询语句的一部分,以避免SQL注入和命令注入攻击。

3. 在设计数据库时,要使用安全的数据访问策略。

包括设置合适的权限和角色,使用加密技术保护敏感数据,对数据库进行定期备份和监控等。

4. 在处理敏感数据时,要进行加密处理。

包括对密码进行加密存储、使用SSL/TLS保护数据传输、使用加密算法对敏感数据进行加密等。

5. 在进行用户身份验证时,要使用安全的身份认证机制,如使用哈希和盐值加密来存储用户密码,使用双因素认证提高安全性等。

6. 在进行会话管理时,要使用安全的会话控制策略。

包括使用随机生成的会话ID,设置会话超时时间,使用HTTPS保护会话信息等。

7. 在进行错误处理时,要避免详细的错误信息暴露给用户,以防止攻击者利用这些信息进行攻击。

可以使用日志记录来帮助定位和解决错误。

8. 在进行文件上传和下载时,要对文件进行合理的限制和验证,防止恶意文件上传和目录遍历攻击。

可以使用文件白名单和黑名单过滤机制,以及对上传文件进行病毒扫描等。

9. 在编写安全相关代码时,要进行充分的单元测试和安全测试,以确保代码的正确性和安全性。

可以使用安全测试工具来进行自动化测试。

10. 在面对安全漏洞和攻击事件时,要及时采取应急措施,如修补漏洞、更新补丁、切断攻击者的攻击路径等,以及及时通知相关人员和机构,以共同应对安全威胁。

总之,安全编码规范是确保软件系统安全的基础。

只有编写出安全规范的代码,才能有效地保护软件系统和用户的安全。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

安全编码规范版本号: V1.0修订页编章节修订内容简述修订修订前修订后修订批准人号名称日期版本号版本号人目录1目的.........................................................................................................错误!未定义书签。

2背景.........................................................................................................错误!未定义书签。

3安全编码规范 (5)3.1输入验证和数据合法性校验 (5)3.1.1避免 SQL注入 (5)3.1.2避免 XML 注入 (5)3.1.3避免跨站点脚本( XSS) (5)3.2声明和初始化 (6)3.2.1避免类初始化的相互依赖 (6)3.3表达式 (7)3.3.1不可忽略方法的返回值 (7)3.3.2不要引用空指针 (7)3.3.3使用 Arrays.equals()来比较数组的内容 (8)3.4数字类型和操作 (8)3.4.1防止整数溢出 (8)3.4.2避免除法和取模运算分母为零 (9)3.5类和方法操作 (9)3.5.1数据成员声明为私有,提供可访问的包装方法 (9)3.5.2敏感类不允许复制 (9)3.5.3比较类的正确做法 (10)3.5.4不要硬编码敏感信息 (10)3.5.5验证方法参数 (10)3.5.6不要使用过时、陈旧或低效的方法 (11)3.5.7数组引用问题 (11)3.5.8不要产生内存泄露 (11)3.6异常处理 (12)3.6.1不要忽略捕获的异常 (12)3.6.2不允许暴露异常的敏感信息 (12)3.6.3不允许抛出 RuntimeException, Exception,Throwable (13)3.6.4不要捕获 NullPointerException 或其他父类异常 (14)3.7多线程编程 (15)3.7.1确保共享变量的可见性 (15)3.7.2确保共享变量的操作是原子的 (16)3.7.3不要调用 Thread.run (),不要使用 Thread.stop ()以终止线程 (17)3.7.4确保执行阻塞操作的线程可以终止 (17)3.7.5相互依存的任务不要在一个有限的线程池执行 (18)3.8输入输出 (18)3.8.1程序终止前删除临时文件 (18)3.8.2检测和处理文件相关的错误 (18)3.8.3及时释放资源 (19)3.9序列化 (20)3.9.1不要序列化未加密的敏感数据 (20)3.9.2在序列化过程中避免内存和资源泄漏 (20)3.9.3反序列化要在程序最小权限的安全环境中 (22)1安全编码规范1.1输入验证和数据合法性校验程序接受数据可能来源于未经验证的用户,网络连接和其他不受信任的来源,如果未对程序接受数据进行校验,则可能会引发安全问题。

1.1.1避免SQL注入使用 PreparedStatement预编译SQL,解决SQL注入问题,传递给PreparedStatement对象的参数可以被强制进行类型转换,确保在插入或查询数据时与底层的数据库格式匹配。

String sqlString = "select * from db_user where username=? and password=?";PreparedStatement stmt = connection.prepareStatement(sqlString);stmt.setString(1, username);stmt.setString(2, pwd);ResultSet rs = stmt.executeQuery();1.1.2避免XML注入通过 StringBulider 或 StringBuffer 拼接 XML 文件时,需对输入数据进行合法性校验。

对数量 quantity进行合法性校验,控制只能传入0-9 的数字:if (!Pattern.matches("[0-9]+", quantity)) {// Format violation}String xmlString = "<item>\n<description>Widget</description>\n"+ "<price>500</price>\n" +"<quantity>" + quantity + "</quantity></item>";outStream.write(xmlString.getBytes());outStream.flush();1.1.3避免跨站点脚本(XSS )对产生跨站的参数进行严格过滤,禁止传入<SCRIPT> 标签//定义需过滤的字段串 <script> String s= "\uFE64" + "script" + "\uFE65";//过滤字符串标准化s = Normalizer.normalize(s, Form.NFKC);// 使用正则表达式匹配inputStr是否存在<script>Pattern pattern = pile(inputStr);Matcher matcher = pattern.matcher(s);if (matcher.find()) {// Found black listed tagthrow new IllegalStateException();} else {//...}1.2声明和初始化1.2.1避免类初始化的相互依赖例:错误的写法:public class Cycle {private final int balance;private static final Cycle c = new Cycle();private static final int deposit = (int) (Math.random() * 100); // Randomdeposit public Cycle() {balance = deposit - 10; // Subtract processing fee}public static void main(String[] args) {System.out.println("The account balance is: " + c.balance);}}类加载时初始化指向 Cycle 类的静态变量 c,而类 Cycle 的无参构造方法又依赖静态变量deposit ,导致无法预期的结果。

正确的写法:public class Cycle {private final int balance;private static final int deposit = (int) (Math.random() * 100); // Random depositprivate static final Cycle c = new Cycle(); // Inserted after initialization of required fieldspublic Cycle() {balance = deposit - 10; // Subtract processing fee}public static void main(String[] args) {System.out.println("The account balance is: " + c.balance);}}1.3表达式1.3.1不可忽略方法的返回值忽略方法的放回值可能会导致无法预料的结果。

错误的写法:public void deleteFile(){File someFile = new File("someFileName.txt");someFile.delete();}正确的写法:public void deleteFile(){File someFile = new File("someFileName.txt");if (!someFile.delete()) {// handle failure to delete the file}}1.3.2不要引用空指针当一个变量指向一个NULL 值,使用这个变量的时候又没有检查,这时会导致。

NullPointerException。

在使用变量前一定要做是否为NULL值的校验。

1.3.3使用Arrays.equals()来比较数组的内容数组没有覆盖的Object. equals() 方法,调用Object. equals() 方法实际上是比较数组的引用,而不是他们的内容。

程序必须使用两个参数Arrays.equals()方法来比较两个数组的内容public void arrayEqualsExample() {int[] arr1 = new int[20]; // initialized to 0int[] arr2 = new int[20]; // initialized to 0Arrays.equals(arr1, arr2); // true}1.4数字类型和操作1.4.1防止整数溢出使用 ng.Number. BigInteger类进行整数运算,防止整数溢出。

public class BigIntegerUtil {private static final BigInteger bigMaxInt=BigInteger.valueOf (Integer.MAX_VALUE);private static final BigInteger bigMinInt=BigInteger.valueOf (Integer.MIN_VALUE );public static BigInteger intRangeCheck(BigInteger val)throws ArithmeticException {if (pareTo(bigMaxInt) == 1 || pareTo(bigMinInt) == -1) { throw new ArithmeticException("Integer overflow");}return val;}public static int addInt(int v1,int v2)throws ArithmeticException {BigInteger b1 = BigInteger.valueOf (v1);BigInteger b2 = BigInteger.valueOf (v2);BigInteger res =intRangeCheck(b1.add(b2));return res.intValue();}public static int subInt(int v1,int v2)throws ArithmeticException {BigInteger b1 = BigInteger.valueOf(v1);BigInteger b2 = BigInteger.valueOf(v2);return res.intValue();}public static int multiplyInt(int v1,int v2)throws ArithmeticException {BigInteger b1 = BigInteger.valueOf(v1);BigInteger b2 = BigInteger.valueOf(v2);BigInteger res =intRangeCheck(b1.multiply(b2));return res.intValue();}public static int divideInt(int v1,int v2)throws ArithmeticException {BigInteger b1 = BigInteger.valueOf(v1);BigInteger b2 = BigInteger.valueOf(v2);BigInteger res =intRangeCheck(b1.divide(b2));return res.intValue();}}1.4.2避免除法和取模运算分母为零要避免因为分母为零而导致除法和取模运算出现异常。

相关文档
最新文档