- 1、本文档共1页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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()
您可能关注的文档
最近下载
- 地下室注浆工程合同.docx
- 2022年12月贵州省普通高中学业水平合格性考试语文模拟试题(含答案).pdf
- 新形势下高素质农民培训模式浅析-教育培训论文-教育论文.docx
- Unit 6 Is he your grandpa 第1课时 Lead-in & Cartoon time 译林版(三起)(2024)英语三年级上册.pptx
- 《童年》读书分享PPT.ppt
- 2023年高职单考单招机械类专业理论模拟考试.doc
- 银行公众号运营规划方案(含预估效果).pdf VIP
- 信息通信建设工程预算定额(5册合集).docx VIP
- 篮球裁判员暨社会体育指导员试题含答案.doc
- 煤矿安全规程题库.doc
文档评论(0)