- 1、本文档共21页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Java 开发安全规范
Java 开发安全规范目 录一. 安全隐患11.1 ProcessBuilder注入允许攻击者执行代码11.2 确保public和static字段被定义为final11.3 包含敏感调用的方法应标记为final21.4 执行数据库查询前设置查询类型31.5 实现Serializable接口时没有定制序列化协议31.6 限制特权代码的可访问性41.7 确保SecurityManager权限检查的完整性61.8 避免在public方法中返回private内部数据81.9 避免危险的public static final数组声明8二. 环境配置92.1 不要将多类URL映射到同一个Servlet92.2 不要在配置文件中存放敏感信息92.3 确保Servlet有名字并正确配置102.4 限制字段最大长度避免DoS或注入攻击11三. 代码质量123.1 谨慎使用Thread.yield()方法123.2 使用notifyAll方法替代notify133.3 避免使用Thread的stop方法133.4 重新抛出ThreadDeath异常133.5 确保锁在发生异常时被正确释放143.6 避免在获取锁后调用sleep方法163.7 避免在finally块中抛出异常16四. 安全特性174.1 确必威体育官网网址码学加密算法密钥强度174.2 避免使用过时的加密算法174.3 避免使用不安全的填充(Padding)模式174.4 避免使用弱初始化向量(Initialization Vector)174.5 不要依赖isSecure()方法来决定是否传递敏感信息184.6 在敏感信息不再需要时显式清除它18安全隐患ProcessBuilder注入允许攻击者执行代码与Runtime类相似,如果ProcessBuilder对象根据不可信输入被构造,则有可能被攻击者用来进行命令注入攻击。错误的用法:public static void execUsingCommand(String command) throws Exception {String[] args = new String[] { cmd, /c, dir + command };Process process = new ProcessBuilder().command(args).start();InputStream is = process.getInputStream();InputStreamReader isr = new InputStreamReader(is);BufferedReader br = new BufferedReader(isr);String line;while ((line = br.readLine()) != null) { System.out.println(line); }}在上述代码中,如果command参数来自不可信输入,如网页请求参数或请求URL,则代码存在命令注入漏洞。攻击者可以通过构造一个恶意输入,例如“/home/user rm /app/config”,通过命令行同时执行多条命令。正确的做法是永远不要使用不可信输入构造ProcessBuilder对象,可以通过预定义可能的命令行列表,并根据用户输入来选择执行。确保public和static字段被定义为final如果一个public和static的字段,没有被定义为final,则不受信任的代码有可能通过修改此字段,影响对象的状态,造成潜在的攻击可能性。错误的用法:public class MyClass{ public static int counter = 123; //...}正确的用法:public class MyClass{ public static final int counter = 123; //...}包含敏感调用的方法应标记为final如果一个class没有被标记为final,那么他的所有方法都可以被重载(override)。如果它的一个方法调用了SecurityManager进行特权检查或其他敏感操作,例如AccessController.doPrivileged等,则应确保此方法被标记为final,否则可能被恶意使用者通过重载此方法,跳过预设的检测逻辑。错误的用法:public class BadSecurityCheck {private int id;public BadSecurityCheck() {securityCheck();id = 1;}protected void doSecurityCheck() {SecurityManager sm = System.getSecurityManager();if (sm != null)
您可能关注的文档
- GMP卫生.doc
- Goodsync文件夹同步软件使用教程.doc
- Gn接口学习文档.doc
- google adwords学习.doc
- Go语言入门教程.docx
- google排名优化圣经.doc
- GPRS-EDGE 无线网络优化.ppt
- GPS发展史.doc
- GPRS网络与行业应用简介.ppt
- GQ对克里斯汀·斯图尔特采访中英全文.doc
- 二年级上册数学课件-7观察物体.pptx
- 8.8Module8模块测试(原卷版).doc
- 2018-2019学年高中历史专题二近代中国资本主义的曲折发展22民国时期民族工业的曲折发展教案2人民版必修2.doc
- Unit7Grammar语法一般现在时和一般过去时的被动语态-2022-2023学年八年级英语下册单元重难点易错题精练(牛津译林版).docx
- 江淮十校语文试题.pdf
- 六年级上册语文培优拔高一课一练-6狼牙山五壮士(练习)-人教(含答案)_302668362.doc
- 五年级【语文】语文园地六2课件.pptx
- 第1课中华文明的起源与早期国家(分层作业)(原卷版).docx
- 真题重组卷04(考试版)3_1.docx
- 2024年全省公民科学素质大赛考试题库(含答案).pdf
最近下载
- 2024年工商银行人工智能大模型白皮书.pdf
- 提质增效施工组织设计.docx
- 2024年下半年北京夏都妫川人力资源有限公司招聘食品药品安全监察员12人笔试备考试题及答案解析.docx
- 2023年中国石油大学(北京)克拉玛依校区数据科学与大数据技术专业《计算机网络》科目期末试卷B(有答案).docx VIP
- 2024新人教版一年级数学上册综合与实践单元数学游戏单元整体教学设计.pdf VIP
- 教师资格考试结构化面试100题(含答案).pdf
- JG-D02 环境监测仪技术规范书.doc
- 班组安全活动记录表.pdf
- 大数据技术在继电保护领域的研究与应用-电力信息与通信技术.pdf VIP
- 重庆市某办公楼土建工程施工图预算编制.docx
文档评论(0)