首页 > 其他 > 详细

校验Referer头,防范CSRF(跨站请求伪造)攻击的拦截器

时间:2015-12-30 02:09:45      阅读:1627      评论:0      收藏:0      [点我收藏+]

?

?

	public final static	String domainName = "192.168.2.123";

?

?

package com.web.interceptors;

import org.apache.log4j.Logger;
import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
import com.trace.web.utils.Constants;

/**
 * 对管理员操作,校验Referer头,防范CSRF(跨站请求伪造)攻击的拦截器
 * @author admin
 */
public class AuthInterceptor extends AbstractInterceptor {

	private static final long serialVersionUID = -2154056039548254482L;
	
	private static Logger log = Logger.getLogger(AuthInterceptor.class);

	@Override
	public String intercept(ActionInvocation invocation) throws Exception {
		String referer = ServletActionContext.getRequest().getHeader("Referer");
		if((referer!=null) && (referer.trim().startsWith(Constants.HTTP + Constants.domainName))){
			return invocation.invoke();
		}
		log.info("referer : " + referer);
		return "error";
	}

}

?

?

?

?

?

?

?

?

?

?

?

?

?

?

校验Referer头,防范CSRF(跨站请求伪造)攻击的拦截器

原文:http://knight-black-bob.iteye.com/blog/2267372

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!