安全编码规范.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
安全编码规范

金税三期工程个人税收管理项目安全编码规范版本号:V1.0修订页编号章节名称修订内容简述修订日期修订前版本号修订后版本号修订人批准人目 录1目的52背景53安全编码规范53.1输入验证和数据合法性校验53.1.1避免SQL注入53.1.2避免XML注入53.1.3避免跨站点脚本(XSS)63.2声明和初始化63.2.1避免类初始化的相互依赖63.3表达式73.3.1不可忽略方法的返回值73.3.2不要引用空指针83.3.3使用Arrays.equals()来比较数组的内容83.4数字类型和操作83.4.1防止整数溢出83.4.2避免除法和取模运算分母为零93.5类和方法操作103.5.1数据成员声明为私有,提供可访问的包装方法103.5.2敏感类不允许复制103.5.3比较类的正确做法103.5.4不要硬编码敏感信息113.5.5验证方法参数113.5.6不要使用过时、陈旧或低效的方法113.5.7数组引用问题113.5.8不要产生内存泄露123.6异常处理123.6.1不要忽略捕获的异常123.6.2不允许暴露异常的敏感信息133.6.3不允许抛出RuntimeException, Exception,Throwable143.6.4不要捕获NullPointerException或其他父类异常143.7多线程编程153.7.1确保共享变量的可见性153.7.2确保共享变量的操作是原子的163.7.3不要调用Thread.run(),不要使用Thread.stop()以终止线程183.7.4确保执行阻塞操作的线程可以终止183.7.5相互依存的任务不要在一个有限的线程池执行193.8输入输出193.8.1程序终止前删除临时文件193.8.2检测和处理文件相关的错误193.8.3及时释放资源193.9序列化203.9.1不要序列化未加密的敏感数据203.9.2在序列化过程中避免内存和资源泄漏213.9.3反序列化要在程序最小权限的安全环境中22目的在金税三期业务系统安全功能具体要求,个人税收管理系统的安全需求分析和个人税收管理系统的安全设计分析的指导下,制定安全编码规范,用以指导后续编码工作。背景软件系统的名称:个人税收管理系统本项目的任务提出者:金税三期工程办公室本项目的任务开发者:个人税收管理项目组本项目的用户:税局操作员、系统管理员、审计员安全编码规范输入验证和数据合法性校验程序接受数据可能来源于未经验证的用户,网络连接和其他不受信任的来源,如果未对程序接受数据进行校验,则可能会引发安全问题。避免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();避免XML注入通过StringBulider 或 StringBuffer 拼接XML文件时,需对输入数据进行合法性校验。对数量quantity 进行合法性校验,控制只能传入0-9的数字:if (!Pattern.matches([0-9]+, quantity)) { // Format violation } String xmlString = item\ndescriptionWidget/description\n + price500/price\n + quantity + quantity + /quantity/item; outStream.write(xmlString.getBytes()); outStream.flush();避免跨站点脚本(XSS)对产生跨站的参数进行严格过滤,禁止传入SCRIPT标签//定义需过滤的字段串 scriptString s = \uFE64 + script + \uFE65;// 过滤字符串标准化s = Normalizer.normalize(s, Form.NFKC);// 使用正则表达式匹配inputStr是否存在scriptPattern pattern = Ppile(inputStr);Matcher matcher = pattern.matcher(s);if (matcher.find()) { // Found

文档评论(0)

jgx3536 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:6111134150000003

1亿VIP精品文档

相关文档