摘要
垃圾邮件已经成为互联网的一个最大的威胁。许多团体性的应用强制要求授权的原因就是为了把合法的用户从自动发送垃圾邮件的源中识别出来,而这一要求有时会有一些副作用。CAPTCHAs 能帮助我们区分真正的用户和发送垃圾邮件的源。在这篇文章中,Anand Raman在J2EE Web 应用中使用了CAPTCHAs 作为一种较弱的授权机制。文章以介绍J2EE 安全模块和CAPTCHAs作为开始,然后使用CAPTCHAs,在前面介绍的基础上实现了JAAS(Java Authentication and Authorization Service),并把它整合进已存在的安全体系中。由于所有的工作都是基于标准J2EE的安全机制,所以这个模快能够重用在任何J2EE应用中,在应用于不同的服务时所需的更改也是很少的。
Web应用的前景是在不断的演进中的,它已经从最开始作为共享文档和信息的方式演化为业务管理的平台,而在这种应用中,许可和授权是一个关键的特征。Web的应用前景还在不断的演进中,而本文把关注放在面向群体的应用中,例如博可和维基。在这种应用中,由于作者希望有交流和反馈,所以授权不是非常严格的。有时,由于害怕识别,会造成失去一些人可能做出的贡献。但是,缺少授权就会带来诸如垃圾邮件这类的问题。这里有几条在Web上抽取的信息:
·我认为在维基上垃圾邮件是不可避免的。我建立了这个网站维基的一部分,把修改权限
平开放给每个人,以鼓励读者和来访者互相交流。但是,这已经是第二次了,一个发垃圾邮件的人把一堆到中国网站的链接放在这的网页里。(摘自X-Pollen)
·“致所有在维基上发垃圾邮件的人:从1-2-2005起,任何人要做任何操作,包括编辑或增加新页,都要由搜索引擎强制间隔十个小时。由于在这个网站上发的垃圾邮件在一分钟、最多一小时内就会被删除,所以,任何试图在这个网站上建立发垃圾邮件的机制都是徒劳的举动。(摘自C2 Wiki)”
很明显,垃圾邮件发送源必须被识别出来。大多数者类恶意的攻击发生数据匹配模式被识出来之后。一个可能的方法是人工而不是有计算机来停止这种攻击,很显然这是个挑战。通过图灵测试,按一个有名的计算机专家――阿兰。图灵命名的试验,可以确定机器能够实现类似人类操作的能力。者类测试中最有名的一个是CAPTCHA (an acronym for completely automated public Turing test to tell computers and humans apart)。这个测试常用来表明以个典型的情况:混乱或含义模糊的词,人很容易识别,但对于光学识别软件来讲却很困难。
图1是一个典型的CAPTCHA.
图1一个典型的CAPTCHA.
现在,大多数主要的服务提供商(Yahoo, Hotmail, Google)已经在他们的免费服务中使用CAPTCHA,用来作为区分垃圾邮件和虚假注册的手段。在本文中,我们要描述以下在我们的Web应用中加入基于CAPTCHA授权的方法。
首先,我们快速浏览以下J2EE中Web应用的安全模型。
J2EE安全模型
在Java开发中,安全性始终是一个最受关注的领域。毫无疑问,J2EE在构建安全的应用时,采用了同样的原理和健壮的框架。在J2EE中,安全性是一个很大的题目,在这里是不可能叙述细节的。在这方面有好多好的资源。我极力推荐团队和个人花些时间来熟悉这些概念。在这力,我只能极概括的叙述一些最关键的概念。
1
2
3
4
下一页>>