Java验证码开源框架:jcaptcha
[ 2011-08-23 14:21 | by 草山湖 ]
jcaptcha是一个标准CAPTCHA实现,这是一种用来分辨计算机自动响应还是人工输入的技术,就是我们俗称的登录验证码。防止计算机自动识别简单的验证码进行注册登录。
jcaptcha是 Java Completely Automated Public Test to tell Computers and Humans Apart。
验证码输出案例,包括声音
使用起来很简单:
1.将 jcaptcha.jar file into the WEB-INF/lib
2.配置web.xml
<servlet>
<servlet-name>jcaptcha</servlet-name>
<servlet-class>com.octo.captcha.servlet.image.SimpleImageCaptchaServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>jcaptcha</servlet-name>
<url-pattern>/jcaptcha.jpg</url-pattern>
</servlet-mapping>
3.在你需要输入验证码的页面表单加入:
<form action="submit.action">
...
<img src="jcaptcha.jpg" /> <input type="text" name="jcaptcha" value="" />
...
</form>
4.在表单提交的接受servlet或Action或Controller中加入下面代码进行验证:
String userCaptchaResponse = request.getParameter("jcaptcha");
boolean captchaPassed = SimpleImageCaptchaServlet.validateResponse(request, userCaptchaResponse);
if(captchaPassed){
// proceed to submit action
}else{
// return error to user
}
开源项目网址:
jcaptcha
jcaptcha是 Java Completely Automated Public Test to tell Computers and Humans Apart。
验证码输出案例,包括声音
使用起来很简单:
1.将 jcaptcha.jar file into the WEB-INF/lib
2.配置web.xml
<servlet>
<servlet-name>jcaptcha</servlet-name>
<servlet-class>com.octo.captcha.servlet.image.SimpleImageCaptchaServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>jcaptcha</servlet-name>
<url-pattern>/jcaptcha.jpg</url-pattern>
</servlet-mapping>
3.在你需要输入验证码的页面表单加入:
<form action="submit.action">
...
<img src="jcaptcha.jpg" /> <input type="text" name="jcaptcha" value="" />
...
</form>
4.在表单提交的接受servlet或Action或Controller中加入下面代码进行验证:
String userCaptchaResponse = request.getParameter("jcaptcha");
boolean captchaPassed = SimpleImageCaptchaServlet.validateResponse(request, userCaptchaResponse);
if(captchaPassed){
// proceed to submit action
}else{
// return error to user
}
开源项目网址:
jcaptcha
如何设置Tomcat目录浏览
[ 2011-06-17 09:36 | by 草山湖 ]
第一步:
找到安装Tomcat的目录$Apache Software Foundation\Tomcat 5.5\conf\web.xml,然后打开找到如下代码
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
把其中如下代码删除
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
第二步:
找到
<init-param>
<param-name>listings</param-name>
<param-value>false</param-value>
</init-param>
把param-value : false 改为 true
第三步:
重启Tomcat服务器即可
找到安装Tomcat的目录$Apache Software Foundation\Tomcat 5.5\conf\web.xml,然后打开找到如下代码
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
把其中如下代码删除
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
第二步:
找到
<init-param>
<param-name>listings</param-name>
<param-value>false</param-value>
</init-param>
把param-value : false 改为 true
第三步:
重启Tomcat服务器即可
MyEclipse配置Tomcat(图解)
[ 2010-07-09 12:19 | by 草山湖 ]SQL注入攻击的种类和防范手段
[ 2010-07-06 21:27 | by 草山湖 ]
观察近来的一些安全事件及其后果,安全专家们已经得到一个结论,这些威胁主要是通过SQL注入造成的。虽然前面有许多文章讨论了SQL注入,但今天所讨论的内容也许可帮助你检查自己的服务器,并采取相应防范措施。
SQL注入攻击的种类
知彼知己,方可取胜。首先要清楚SQL注入攻击有哪些种类。
1.没有正确过滤转义字符
在用户的输入没有为转义字符过滤时,就会发生这种形式的注入式攻击,它会被传递给一个SQL语句。这样就会导致应用程序的终端用户对数据库上的语句实施操纵。比方说,下面的这行代码就会演示这种漏洞:
statement := "SELECT * FROM users WHERE name = '" + userName + "';"
这种代码的设计目的是将一个特定的用户从其用户表中取出,但是,如果用户名被一个恶意的用户用一种特定的方式伪造,这个语句所执行的操作可能就不仅仅是代码的作者所期望的那样了。例如,将用户名变量(即username)设置为:
a' or 't'='t,此时原始语句发生了变化:
SELECT * FROM users WHERE name = 'a' OR 't'='t';
如果这种代码被用于一个认证过程,那么这个例子就能够强迫选择一个合法的用户名,因为赋值't'='t永远是正确的。
SQL注入攻击的种类
知彼知己,方可取胜。首先要清楚SQL注入攻击有哪些种类。
1.没有正确过滤转义字符
在用户的输入没有为转义字符过滤时,就会发生这种形式的注入式攻击,它会被传递给一个SQL语句。这样就会导致应用程序的终端用户对数据库上的语句实施操纵。比方说,下面的这行代码就会演示这种漏洞:
statement := "SELECT * FROM users WHERE name = '" + userName + "';"
这种代码的设计目的是将一个特定的用户从其用户表中取出,但是,如果用户名被一个恶意的用户用一种特定的方式伪造,这个语句所执行的操作可能就不仅仅是代码的作者所期望的那样了。例如,将用户名变量(即username)设置为:
a' or 't'='t,此时原始语句发生了变化:
SELECT * FROM users WHERE name = 'a' OR 't'='t';
如果这种代码被用于一个认证过程,那么这个例子就能够强迫选择一个合法的用户名,因为赋值't'='t永远是正确的。






