韩璐莹
(陕西国际商贸学院 陕西 咸阳 712000)
在移动互联网飞速发展的时代背景下,Java Web的应用也迎来了前所未有的发展机遇,并获得了更大范围的应用和推广,在加快信息化社会建设及推动信息软件的发展中发挥了重要作用。然而,Java Web程序所具备的主要功能就是完成网络信息资源的交换和共享,使用户能够利用这些程序浏览相应的数据和信息,这样一来Java Web程序的安全性就很难得到有效保障。因此,需要对Java Web程序采取相应的安全技术,以此来有效解决应用程序在运行过程中所出现的安全问题。
Java Web应用是基于Web技术及使用Java语言进行开发的程序应用,其结构主要分为客户端和服务器端。因此,其所面对的安全威胁通常也来源于这两部分,特别是在具体应用程序的实际运行中,即数据交换和资源共享的通信过程。在服务器端所遭遇的安全威胁大多数是服务器在实际运行时所出现的bug,其他常见的安全威胁还有由于服务器代码的运行环境被破坏或者是代码本身被隐藏等,可表现为资源定位器发生强制访问的问题,以及服务器和操作系统的漏洞。客户端所面对的安全威胁则具体表现在技术人员所使用的开发技术有安全隐患和漏洞。在Java Web程序中引入安全技术可以防止以上问题的出现,以确保在数据等资源交换的过程中数据不会遭到篡改和破坏,使其完整性、准确性及保密性得到保障[1]。
Java的安全体系架构理念是以安全沙箱的概念为基础延伸而来,对模型划分为需要加载的远程代码及存储于本地服务器的本地代码。存储在本地服务器的代码是可信任、安全的,并且能够有效访问本地服务器上的资源。在具体的Java程序设计过程中,该理念能够对Java 安全体系进行补充,使其能够在保护域的基础概念上,提供更为可靠的安全控制。所谓的保护域即对应用安全和系统安全进行了区分,其中最为核心且重要的就是保护域的概念,能够指出当前操作环境中所需要进行保护的重要部分,以此达到分组需保护资源和组件的目的。在对应的保护域中,应当对拥有相同权限的不同类进行归类,以定义保护域。在加载Java类的有关安全机制中,应当将其基本类的有关记载引入,从而有效解决加载器间的联系问题,这个过程中Java程序需要使用的所有初始类都是需要加载的,并且其他类型的加载器也是需要通过起动方可进行加载。而关于Java的权限方面,会借助固定的类Permission来进行具体表示。Java也会提供一部分常用的子类以表示不同应用系统的具体权限,此外还会赋予其子类与其等级相适应的权限,借助这样的方式来实现Java的具体安全策略[2]。
在与Java相关的安全策略中,非常重视不同Java程序创建对应的安全策略文件,从而达到保护域内容进行不断地改进和提升的目的,但是不会改动对应用程序的具体代码。但需要在对应的安全策略文件中,去定义应用程序所涉及的具体策略条目,并且按照文件中的对应条目得到所需的安全策略文件。
在与安全属性相关的文件中,需要配置3种安全策略类型的文件,其中包括系统安全策略、用户策略以及应用安全策略,通过设定其系统属性,可以替代原有的安全策略文件。与此同时,还存在一种情形,就是任何使用程序的人都有权去修改Java现行的安全策略文件,这样就容易导致出现大量的安全问题,当这种情况发生时,应当借助Java命令设置系统属性。Java安全策略的文件内容涵盖了众多条目,能够进行对应授权,但是需要注意的是,这个过程是需要借助钥箱来查找相关的证书及密钥的。
在进行Java Web程序的有关安全技术的研究时,可以重点关注服务端与客户端之间的通信过程,即以下几方面。
(1)应用程在代码层面和程序层面实施对应的安全防范措施时,应当不断提升编写应用程序的安全级别,同时也需要充分了解目标程序本身及其开发环境的稳定性及安全性。此外,还应当了解黑客进行网络攻击时常用的技术手段,也需要了解其心理、目标及技术等内容,以此帮助开发者能够从不同角度补充和完善Web程序的安全防御性能。
(2)采用多种方式完成身份认证,比如数字签名、数字证书等。通信双方通过服务证书或者数字签名来保证连接的真实性与安全性,从而实现通过SSL来完成双向认证的目的,这样能够使数据在传输过程中的安全性和可靠性得到保证。
(3)利用计算机来有效减弱Web程序在通信方面所造成的负面影响。首先是Ajax,这是一种以交互式为基础的Web开发技术,在Web应用领域受到了广泛关注和好评。通过Ajax技术能够使前端页面与后台之间以异步的方式实现数据交换,从而能够全方面地提升用户在使用Web应用程序的便捷性。通常来说,借助Ajax技术开发对应应用程序的过程中,当页面发生改动的情况下需要与用户进行及时通信,因此在客户端与服务端之间会建立起专用的通信通道,以检查所输入的信息。在服务器需要对用户开展对应认证工作时,就应当围绕其所运行的服务器脚本展开。
其次是Cookie,这是一种用来使用户身份认证工作简单化以及提高认证准确性的数据缓存方法,它能够帮助应用程序所在的服务器快速有效地完成用户身份认证。借助该技术后,服务器能够在用户登录成功后,将用户的注册信息记录下来,并将其放到缓存中,当用户有多次重复访问需求时就会快速将该用户信息提取使用,以此完成和简化程序在身份认证时的重要重复性工作。借助cookie技术进行具体开发实践时,cookie过去经常会遭到黑客攻击,因此容易造成用户相关信息的泄露,导致损失。其中,蠕虫就是攻击Web程序中所采用的cookie技术的一种主要病毒类型,其以极强的传播力及破坏力能够对应用程序的大部分安全漏洞做进一步的攻击和破坏,从而窃取到脚本和会话信息。
第三就是JavaScript,这是一种拥有较为完善安全性能的脚本语言,能够驱动事件和对象。借助该技术进行Web开发,拥有简洁、生动的优势,该技术在语言方面也是比较简洁的,因此也受到了广大开发者的喜爱,并将其广泛应用在Web程序的实际开发中[3]。
(1)保护存储在本地的数据。在Java Web程序运行过程中,倘若需要使用存储在本地的数据来独立运行的话,通常会存在一个问题,即用户可以直接访问数据库,对数据文件进行写入和读取等操作,而不需要借助Java Web程序才能进行对应操作,这也表明用户能够任意读取甚至是修改存储在本地的数据。因此,应当采取措施保护存储在本地的数据。此外,将数据存储到云端等远程服务器上也容易发生类似情况。因此,可以借助Java Web程序的加密功能加密存储数据,在加密算法方面一般采用对称密钥,并且为了保障加密效果,进一步使公钥和私钥结合的安全性得到加强,可以在加密密钥生成时加入经使用者设计的口令。其中,口令具体包括口令重置、口令的哈希算法以及口令策略等。
(2)防止出现程序复制。在Java Web程序的开发过程中,很容易出现代码滥用的问题,急需一种能够防止程序被复制的授权机制。此外,还需要通过安全管理的手段来保障源码的安全性与完整性,可以通过将程序的源码存储在安全保障良好的代码控制仓库,并且设计严格的访问和认证的机制,还需要关注源代码仓库及其相关工具所发生的安全问题。
(3)Java Web程序所面对的安全问题具有无法避免的特性,采用安全技术手段也无法将其完全清除,但是安全技术的应用能够保证程序可以稳定、正常运行。因此,在Web应用程序引入安全保护效果更好的安全技术可以规避掉大部分的风险。开展Java Web程序的具体安全工作时,要做到有的放矢,应当合理结合安全技术手段的发展趋势,对应用程序的安全防护工作进行自查和调整,这样可以让Java Web程序的安全工作能够更有序、更完善。
安全技术作为保障Java Web应用程序稳定、正常、安全运行的一道技术屏障,应当在应用程序的开发阶段就进行更为完备的安全考量。针对Java自身所具备的安全特性,可以借助安全技术来使程序的安全性得到保障。而Java Web 程序的实现与开发是基于Java基础知识的应用,再通过紧密联系Web技术,可以完成Web应用程序。在应用程序的开发过程中,应当从Java技术本身出发结合Web技术中所存在的安全漏洞采取具体防护措施,从而使应用程序在系统、网络以及数据库层面都能够得到全面保障。综上所述,在对应用程序进行具体分析时,应当参考实际情况建立对应的数据存储、网络通信及系统安全策略。