欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    2022年Java安全开发规范 .pdf

    • 资源ID:39891532       资源大小:90.37KB        全文页数:7页
    • 资源格式: PDF        下载积分:4.3金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要4.3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    2022年Java安全开发规范 .pdf

    Java 安全开发规范名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 7 页 -第1章前言为提高应用安全水平,特制定本规范对代码编制进行规范。规范中的安全要求按照严格程度分为三级:Policy 必须遵循的策略,实现方法可以自定义,但不能外翻策略的规定。Discipline 必须遵守的纪律,必须按照规定中的描述实施,绝对不能违反。Guideline 建议性的指南和规范,将逐步要求遵循实施。第2章Java 安全性开发规范2.1跨站脚本 XSS 风险及危害性:跨站脚本 XSS指利用网站漏洞从用户那里恶意盗取信息。用户在浏览网站、使用即时通讯软件、甚至在阅读电子邮件时,通常会点击其中的链接。攻击者通过在链接中插入恶意代码,就能够盗取用户信息。攻击者通常会用十六进制(或其他编码方式)将链接编码,以免用户怀疑它的合法性。网站在接收到包含恶意代码的请求之后会产成一个包含恶意代码的页面,而这个页面看起来就像是那个网站应当生成的合法页面一样。许多流行的留言本和论坛程序允许用户发表包含 HTML 和 javascript 的帖子。假设用户甲发表了一篇包含恶意脚本的帖子,那么用户乙在浏览这篇帖子时,恶意脚本就会执行,盗取用户乙的session信 息。如何导致 XSS攻击,一般来说来自http 的 post,或者 get 方式取得参数值很可能为恶意代码,如果开发者直接用这些参数组合成http 链接,用户点击该名师资料总结-精品资料欢迎下载-名师精心整理-第 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=method=post 注:XSSCheck 为公用工具类,用于XSS检查,其 getParameter 实现逻辑如下:1、通过参数名称,从请求中取得参数值。2、将&,”转义:&-&⁢->“-"-´3、返回安全的字符串。2.2违反信任边界规则(Trust Boundary Violation)风险及危害一 个 受 信 任 的 边 界 可 以 被 认 为 是 由 系 统 划 出 的 边 境,例 如session,attribute,aplication,数据库,文件等在服务端存储边界都认为是受信任的。反之来来自http 的 post,或者 get 方式取得参数值是不受信任的。凡名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 7 页 -是将非受信任边界的参数转入到受信任的边界内,需要对参数值进行检查,否则造成信任边界违例,当开发者直接操作受信边界内部的参数时会认为该参数是安全的,而造成安全隐患,例如脚本注入,XSS攻击等。应对措施开发者要保证代码的安全性,当参数信任边界切换的时候,对参数值进行检查,检查其内容里是否用非法脚本信息:1 过滤或转换用户提交数据中的HTML 代码。2 限制用户提交数据的长度非安全代码示例String dsn=request.getParameter(DSN);String sql=request.getParameter(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.setAttribute(SqlHelper.DSN,dsn);2.3不安全的反射(Unsafe Reflection)风险及危害攻击者能够建立一个不可预测的、贯穿应用程序的控制流程,使得他们可以潜在地避开安全检测。攻击者能够建立一个在开发者意料之外的、不可预测的控制流程,贯穿应用程序始终。这种形式的攻击能够使得攻击者避开身份鉴定,或者访问控制检测,或者使得应用程序以一种意料之外的方式运行。如果攻击者能够将文件上传到应用程序的classpath或者添加一个 classpath的新入口,那么名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 7 页 -这将导致应用程序陷入完全的困境。无论是上面哪种情况,攻击者都能使用反射将新的、多数情况下恶意的行为引入应用程序。应对措施开发者可以定制一份白名单,通过关键字关联需要实例化的类,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=Class.forName(className).getProtectionDomain();if(pd!=null)CodeSource cs=pd.getCodeSource();安全代码示例 String classNameKey =request.getParameter(classname);String className=WhiteList.get(classNameKey);if(className!=null)&(className=className.trim().length()!=0)/Attempt to load class and get its location.try ProtectionDomain pd=Class.forName(className).getProtectionDomain();if(pd!=null)CodeSource cs=pd.getCodeSource();注 1:WhiteList.get其具体实现如下:1、从描述白名单的文件中,读出白名单列表;2、根据传入的关键值寻找该白名单的真实值;3、返回该值,如果没有找到,抛出异常。2.4SQL 注入(SQL Injection)风险及危害:SQL注入是一种常见攻击方式,由于开发者采用sql 拼凑的方式,用来自网络中不安全的参数形成sql 语句访问数据库,攻击者常常采用该漏洞组合成非法的 sql 语句,使得信息泄露,访问到本来没有权限查看的内容或者直接破坏数据名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 7 页 -库信息等。发生 SQL Injection有以下几种方式:一、进入程序的数据来自不可信赖的资源。二、数据用于动态构造一个SQL查询。应对措施:一、开发者可以采用带参方式访问sql 语句访问数据库,在java 中即采用PreparedStatement 的方式访问数据库。二、如果开发者一定要使用sql 拼凑的方式访问数据,对字符串要检查并过滤单引号,对于可能为整形或者浮点类型参数,要先转整形,或者浮点,再进行拼凑。非安全代码示例String userid=(String)session.getAttribute(classname);String param1=request.getParameter(“param1”);StringBuffer strbuf=new StringBuffer();strbuf.append(“select*from table1 where userid=”);strbuf.append(userid);strbuf.append(“and param1=”).append(param1).append(“”);String sql=strbuf.toString();/当param1为 test or 1=1 那么这条语句就 为 select*from table1 where userid=$userid and param1=test or 1=1 这样查询出来的数据就超越了这个用户访问的范围。安全代码示例方法一:采用 PreparedStatement 访问数据库。String userid=(String)session.getAttribute(classname);String param1=request.getParameter(“param1”);StringBuffer strbuf=new StringBuffer();String sql=“select*from table1 where userid=?and param1=?”;方法二:检查并过滤特殊字符String userid=(String)session.getAttribute(classname);String param1=request.getParameter(“param1”);StringBuffer strbuf=new StringBuffer();strbuf.append(“select*from table1 where userid=”);strbuf.append(userid);strbuf.append(“and param1=”).append(SqlInjectCheck.checkStringValue(param1).append(“”);String sql=strbuf.toString();注:SqlInjectCheck.checkStringValue是公用函数,其实现如下:1、将转化成´2、返回字符串。名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 7 页 -2.5系统信息泄露(System Information Leakage)风险及危害:JSP中出现 HTML 注释(System Information Leakage:HTML Comment in JSP),攻击者可以通过 html 的注释得到用于攻击的信息。应对措施:应该使用 JSP注释代替 HTML 注释。(JSP注释不会被传递给用户)。非安全代码示例 安全代码示例 2.6资源注入(resource injection)风险及危害:允许用户可以通过输入来控制资源标识符,会让攻击者有能力访问或修改被保护的系统资源。发生 resource injection有以下两种方式:1.攻击者可以指定已使用的标识符来访问系统资源。例如,攻击者可以指定用来连接到网络资源的端口号。2.攻击者可以通过指定特定资源来获取某种能力,而这种能力在一般情况下是不可能获得的。应对措施开发者可以定制一份白名单,通过关键字关联需要资源内容,http 请求中传递是不是实际的资源内容,而是关键字,开发者得到关键字后在白名单中寻找需要的信息,进行后续操作。非安全代码示例String dsn=request.getParameter(DSN);DataSource ds=(DataSource)ctx.lookup(dsn);安全代码示例String dsnKey=request.getParameter(DSN);String dsn=WhiteList.get(dsnKey);DataSource ds=(DataSource)ctx.lookup(dsn);名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 7 页 -

    注意事项

    本文(2022年Java安全开发规范 .pdf)为本站会员(C****o)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开