2022年Java安全开发规范 .pdf
《2022年Java安全开发规范 .pdf》由会员分享,可在线阅读,更多相关《2022年Java安全开发规范 .pdf(7页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Java 安全开发规范名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 7 页 -第1章前言为提高应用安全水平,特制定本规范对代码编制进行规范。规范中的安全要求按照严格程度分为三级:Policy 必须遵循的策略,实现方法可以自定义,但不能外翻策略的规定。Discipline 必须遵守的纪律,必须按照规定中的描述实施,绝对不能违反。Guideline 建议性的指南和规范,将逐步要求遵循实施。第2章Java 安全性开发规范2.1跨站脚本 XSS 风险及危害性:跨站脚本 XSS指利用网站漏洞从用户那里恶意盗取信息。用户在浏览网站、使用即时通讯软件、甚至在阅读电子邮件时,通常会点击其中的链
2、接。攻击者通过在链接中插入恶意代码,就能够盗取用户信息。攻击者通常会用十六进制(或其他编码方式)将链接编码,以免用户怀疑它的合法性。网站在接收到包含恶意代码的请求之后会产成一个包含恶意代码的页面,而这个页面看起来就像是那个网站应当生成的合法页面一样。许多流行的留言本和论坛程序允许用户发表包含 HTML 和 javascript 的帖子。假设用户甲发表了一篇包含恶意脚本的帖子,那么用户乙在浏览这篇帖子时,恶意脚本就会执行,盗取用户乙的session信 息。如何导致 XSS攻击,一般来说来自http 的 post,或者 get 方式取得参数值很可能为恶意代码,如果开发者直接用这些参数组合成http
3、 链接,用户点击该名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 7 页 -连接,就会造成 XSS攻击风险。应对措施开发者要保证代码的安全性,使其免受XSS 攻击,可采取以下措施:1 过滤或转换用户提交数据中的HTML 代码。2 限制用户提交数据的长度非安全代码示例 form name=importXml action=mofXml.cmd?method=importMofXml&primaryKey=method=post 安全代码示例 form name=importXml action=mofXml.cmd?method=importMofXml&primaryKey=me
4、thod=post 注:XSSCheck 为公用工具类,用于XSS检查,其 getParameter 实现逻辑如下:1、通过参数名称,从请求中取得参数值。2、将&,”转义:&-&⁢->“-"-´3、返回安全的字符串。2.2违反信任边界规则(Trust Boundary Violation)风险及危害一 个 受 信 任 的 边 界 可 以 被 认 为 是 由 系 统 划 出 的 边 境,例 如session,attribute,aplication,数据库,文件等在服务端存储边界都认为是受信任的。反之来来自http 的 post,或者 get 方式取得参
5、数值是不受信任的。凡名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 7 页 -是将非受信任边界的参数转入到受信任的边界内,需要对参数值进行检查,否则造成信任边界违例,当开发者直接操作受信边界内部的参数时会认为该参数是安全的,而造成安全隐患,例如脚本注入,XSS攻击等。应对措施开发者要保证代码的安全性,当参数信任边界切换的时候,对参数值进行检查,检查其内容里是否用非法脚本信息:1 过滤或转换用户提交数据中的HTML 代码。2 限制用户提交数据的长度非安全代码示例String dsn=request.getParameter(DSN);String sql=request.getPa
6、rameter(SQL);if(sql=null)sql=;dsn=(String)session.getAttribute(SqlHelper.DSN);else session.setAttribute(SqlHelper.DSN,dsn);安全代码示例 String dsn=XSSCheck.getParameter(request,DSN);String sql=request.getParameter(SQL);if(sql=null)sql=;dsn=(String)session.getAttribute(SqlHelper.DSN);else session.setAttrib
7、ute(SqlHelper.DSN,dsn);2.3不安全的反射(Unsafe Reflection)风险及危害攻击者能够建立一个不可预测的、贯穿应用程序的控制流程,使得他们可以潜在地避开安全检测。攻击者能够建立一个在开发者意料之外的、不可预测的控制流程,贯穿应用程序始终。这种形式的攻击能够使得攻击者避开身份鉴定,或者访问控制检测,或者使得应用程序以一种意料之外的方式运行。如果攻击者能够将文件上传到应用程序的classpath或者添加一个 classpath的新入口,那么名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 7 页 -这将导致应用程序陷入完全的困境。无论是上面哪种情况,
8、攻击者都能使用反射将新的、多数情况下恶意的行为引入应用程序。应对措施开发者可以定制一份白名单,通过关键字关联需要实例化的类,http 请求中传递是不是实际的类名,而是关键字,开发者得到关键字后在白名单中寻找需要的信息,进行实例化。非安全代码示例String className=request.getParameter(classname);if(className!=null)&(className=className.trim().length()!=0)/Attempt to load class and get its location.try ProtectionDomain pd=C
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年Java安全开发规范 2022 Java 安全 开发 规范
限制150内