JAVA安全编码规范参考.pdf

  1. 1、本文档共1页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
JAVA安全编码规范参考 ⽬录 • 1、安全编码基本原则
 ◦ 1.1 所有输⼊数据都是有害的
 ◦ 1.2 不依赖运⾏环境的安全配置
 ◦ 1.3 安全控制措施落实在最后执⾏阶段
 ◦ 1.4 最⼩化
 ◦ 1.5 失败终⽌
 • 2、常⻅漏洞对应的安全编码⽅法
 ◦ 命令注⼊
 ◦ 代码注⼊
 ◦ SQL注⼊
 ◦ Mongo注⼊
 ◦ XXE
 ◦ Xpath注⼊
 ◦ XSS
 ◦ CSRF
 ◦ URL跳转漏洞
 ◦ SSRF
 ◦ 任意⽂件遍历
 ◦ ⽂件上传
 ◦ 反序列化漏洞
 ◦ WebSocket跨站劫持
 ◦ 逻辑漏洞
 ▪ ⼊参判断
 ▪ 整数溢出
 ▪ 资源未释放
 ▪ 越权漏洞
 ▪ 并发问题
 ◦ 敏感信息 1 、安全编码基本原则 1.1 所有输⼊数据都是有害的 直接输⼊数据: 对于⽤户通过 GET, POST, COOKIE, REQUEST等输⼊的数据以及框架提供的数据来源,即通信协议中从客户端传过来的⼀切变量,⽆论是⽤户⼿动填写的数据或是客户端浏览器 或操作系统⾃动填写的数据,都可能产⽣安全问题,需要进⾏严格的安全性检查。 间接的输⼊数据: 从数据库、⽂件、⽹络、内部API获取的数据等,即⼀些不直接来源于⽤户,但是⼜不是程序中定义好的常量数据。⽐如⽤户的输⼊经过层层转化输出到数据库或⽂件,后⾯⼜再 次利⽤的时候,这时获得的数据依然是不可信的,同样需要进⾏严格的安全性检查。 1.2 不依赖运⾏环境的安全配置 不能寄希望于配置⽂件的安全选项,必须将程序置身于最不安全的配置下进⾏考虑。 1.3 安全控制措施落实在最后执⾏阶段 每个安全问题都有其产⽣的原因,例如SQL注⼊的原因是SQL语句参数拼接。因此对SQL注⼊问题的防范,需要在SQL语句执⾏前对参数进⾏安全处理,因为此时才能确定预期的参 数数据类型、数据范围等。 1.4 最⼩化 最⼩化原则适⽤于所有安全相关的领域,在代码安全⽅⾯主要表现为: 1、⽤户输⼊最⼩化。尽可能少地使⽤⽤户的输⼊。 2、⽤户输⼊范围最⼩化。过滤参数时应使⽤⽩名单策略,对于可明确定义范围的参数检查参数的有效性,譬如Email,卡号,身份证号等。 3、返回信息最⼩化。程序错误信息等应对⽤户屏蔽,不要将原始错误信息直接返回到⽤户侧。 1.5 失败终⽌ 对⽤户提交的数据进⾏安全性检查的时候,如果发现数据不符合要求应终⽌业务的执⾏,不要试图修正和转换⽤户提交的参数继续向下执⾏。 2 、常⻅漏洞对应的安全编码⽅法 命令注⼊ 正解编码⽅法: 1. 精确匹配⽤户提交数据 String ip = request.getParameter(ip); if(null==ip){ //handle error } Boolean ret = Pattern.matches(((?:(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d)), ip); if(!ret){ //handle error } String[] cmd = new String[]{ping, -c, 2, ip}; Runtime rt = Runtime.getRuntime(); Process proc = rt.exec(cmd); 2. 使⽤⽩名单 String dir=request.getParameter(dir); if(null==dir){ //handle error } switch (dir){ case test1:dir=test1; break; case test2:order_by=test2; break; default:order_by=test; } Runtime runtime=Runtime.getRuntime()

文档评论(0)

博古通今 + 关注
实名认证
内容提供者

免责声明:本账号发布部分文档来源于互联网公开资料,仅用于技术分享交流,不得从事商业活动,相关版权为原作者所有。如果侵犯了您的相关权利,请提出指正,我们将立即删除相关资料。

1亿VIP精品文档

相关文档