- 浏览: 287971 次
- 性别:
- 来自: 哈尔滨
-
文章分类
最新评论
-
netfengxia:
这个是Mybatis哦. 是一个ORM框架, 这里展示的是My ...
mybatis merge 语句使用 -
MILLETS:
好像没有效果
jsp页面打印、预览、设置实现方案 -
evic520:
mysql有merge into的用法?是不是标题错了 楼主? ...
mybatis merge 语句使用 -
winner_king:
解决问题
pager-taglib分页中文乱码问题 -
Renee涟漪:
...
SVN搭建
1、建立CrossDomainFilter.java
package net.hlj.common.filter; import java.io.IOException; import java.io.PrintWriter; import java.util.Enumeration; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; /** * @项目名:houseInfo * @包名:net.hlj.common.filter * @文件名:CrossDomainFilter.java * @日期:Feb 9, 2012 3:49:24 PM * @备注:防跨域 * @作者:apple */ public class CrossDomainFilter implements Filter{ private static Log log = LogFactory.getLog(CrossDomainFilter.class); public void destroy() { // TODO Auto-generated method stub } public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2) throws IOException, ServletException { // TODO Auto-generated method stub HttpServletRequest request = (HttpServletRequest) arg0; HttpServletResponse response = (HttpServletResponse) arg1; String servername_str = request.getServerName();//取前一个地址 String currentURI = request.getRequestURI(); Enumeration headerValues = request.getHeaders("Referer"); String tmpHeaderValue = ""; boolean isValid = true; //指定需要跳过拦截的页面地址,如果需要新增,可直接在数组中添加。 String [] ignoreURIS={"/back/"}; while (headerValues.hasMoreElements()) { // 得到完整的路径:如“http://www.xxx.com/xxx/xxx.jsp?id=xxx” tmpHeaderValue = (String) headerValues.nextElement(); } // if(log.isInfoEnabled()){ // log.info(" 获得的参数url为: " + tmpHeaderValue ); // log.info(" 系统取得的url为:"+ currentURI); // } if ("".equals(tmpHeaderValue)) { isValid = false; // if(log.isInfoEnabled()){ // log.info(" 获得的参数url为: empty"); // log.info(" 系统取得的url为:"+ currentURI); // log.info("系统提示:请求可能来自外域!"); // } } else { // if(log.isInfoEnabled()){ // log.info("获得的参数长度为:"+tmpHeaderValue.length()); // } tmpHeaderValue = tmpHeaderValue.toLowerCase(); servername_str = servername_str.toLowerCase(); int len = 0; if (tmpHeaderValue.startsWith("https://")) { len = 8; } else if (tmpHeaderValue.startsWith("http://")) { len = 7; } // if(log.isInfoEnabled()){ // log.info("截取前的字符串为:" + tmpHeaderValue ); // log.info( "从第 " + len + " 位开始截取,截取长度为:" + servername_str.length()); // } String tmp = tmpHeaderValue.substring(len, servername_str.length() + len); // if(log.isInfoEnabled()){ // log.info("截取后的字符串为:" + tmp); // } if (tmp.length() < servername_str.length()) { // 长度不够 isValid = false; // if(log.isInfoEnabled()){ // log.info("截取后的字符串长度不够,请求可能来自外域!"); // } } else if (!tmp.equals(servername_str)) {// 比较字符串(主机名称)是否相同 isValid = false; // if(log.isInfoEnabled()){ // log.info("域名匹配失败,请求来自外域!"); // } } } // 跳过指定需要拦截的页面地址 for (String ignoreURI : ignoreURIS) { if(currentURI.contains(ignoreURI)){ isValid=true; // if(log.isInfoEnabled()){ // log.info("系统已跳过检查以下url:"+currentURI); // } } } //如果第一次访问 if(tmpHeaderValue.equals("")){ isValid=true; } if (!isValid) { // if(log.isInfoEnabled()){ // log.info("系统提示信息:URL为跨域请求,即将重定向到首页。 "); // } // response.sendRedirect("/example/exampleIndex.jsp"); PrintWriter out=response.getWriter(); out.print("Page Not Found!"); } else { arg2.doFilter(arg0, arg1); } } public void init(FilterConfig arg0) throws ServletException { // TODO Auto-generated method stub } }
2、web.xml
<!-- 防跨域 --> <filter> <filter-name>CrossDomainFilter</filter-name> <filter-class>net.hlj.common.filter.CrossDomainFilter</filter-class> </filter> <filter-mapping> <filter-name>CrossDomainFilter</filter-name> <url-pattern>*</url-pattern> </filter-mapping>
发表评论
-
struts2从2.2.3升级到2.3.15.1步骤
2014-05-19 10:41 11131. 删除以下jar包 asm-3.1.jar asm- ... -
mybatis merge 语句使用
2014-03-26 10:26 17850<update id="saveRechou ... -
多个SSH2 项目部署在Tomcat下,解决Tomcat启动失败问题
2013-04-24 09:30 2209我在tomcat下同时部署多个SSH2项目时,Tomcat启 ... -
WEB容器启动的时候,加载常用数据到内存
2012-04-26 09:00 1286项目中,有很多数据是基本上不变的,同时用到的频率还比较高,如果 ... -
给spring jdbctemplate加上一层“华丽外衣”-动态SQL&&SQL语句以文件存放
2012-04-26 08:58 1407用hibernate用得多了,忽然怀念起自己直接写sql 的轻 ... -
struts2文件下载
2012-04-01 09:19 1025public String download(){ ... -
spring JdbcTemplate文件写数据库,读取
2012-03-31 15:09 1763/** * 插入文件表数据 * @param tb ... -
用RowMapper封装查询结果自定义类(转)
2012-03-15 14:00 1629package object; import java. ... -
struts2标签详解与实例
2012-02-23 16:30 881见附件 -
java数据类型验证工具类
2012-02-23 16:29 4835package net.hlj.common.util; ... -
解决struts2get请求乱码问题
2012-02-13 11:02 10491、建立CharFilter.java package cn ... -
struts2中struts.xml非默认路径的配置
2012-01-31 14:33 10701) my-struts.xml置于WEB-INF/cla ... -
泛域名解析
2012-01-30 11:15 1211web.xml配置 <!-- webSite d ... -
(转)log4j详解与实战
2011-07-26 08:57 892log4j是一个非常强大的log记录软件,下面我们就来看看在项 ... -
模拟spring功能
2011-06-22 17:14 10591、建立User.java,内容如下: package ne ... -
struts2.1.1实例-helloworld
2011-06-15 17:15 1936Struts2 1.1 Struts ... -
spring配置文件获取方式
2010-12-24 11:33 11481、在src下(class): Applicatio ... -
配置Spring+hibernate使用ehcache作为second-level cache
2010-12-02 16:39 1038大量数据流动是web应用性能问题常见的原因,而缓存被广泛的 ...
相关推荐
在Web开发中,跨域(Cross-Origin)是一个常见的问题,特别是在前后端分离的架构中,前端通常通过Ajax请求与后端API进行交互。由于浏览器的安全策略限制,不同源的资源之间不能自由通信,这就需要我们采取一些措施来...
在Web开发中,"跨域调用"是一个关键的话题,特别是在使用JavaScript进行AJAX操作时。由于浏览器的同源策略(Same-Origin Policy),一个域下的文档或脚本不能请求另一个域下的资源,除非这两个域完全相同。这限制了...
cors-proxy 基于Java Jersey的CORS代理绕过javascript跨域请求限制关于由于浏览器实施的CORS限制,来自浏览器的Javascript无法访问来自其他域的资源。 该Web代理将绕过这些限制。环境Java 1.7以上Tomcat 7以上用法在...
跨域提交表单即为CSRF攻击的一种形式,其原理是利用用户在某个站点的身份认证信息,通过恶意站点发起对合法站点的操作,从而达到非法目的。为了避免此类问题的发生,采用有效的防御措施变得尤为重要。 #### 防止...
跨域资源共享(CORS,Cross-Origin Resource Sharing)是一种机制,允许Web应用从不同的源(比如不同的域名、协议或端口)获取资源。在传统的同源策略下,浏览器限制了JavaScript从一个源向另一个源发送HTTP请求,以...
本文介绍了Canvas引入跨域的图片导致toDataURL()报错的问题的解决,分享给大家,具体如下: 【场景】 用户打开网页,则请求腾讯COS(图片服务器)上的图片。使用canvas绘图。 然后,用户可以重新选择图片、裁剪、...
前端开发语言:Vue( 安卓,IOS,Web为一套前端代码),服务器端开发语言: PHP+WebSocket,数据库:MySql + Mongodb,前端打包工具:Hbuilder 服务器搭建工具...后台登录用户名:admin 密码:123456 TP伪静态,防跨域关掉
// 检查来源以防跨域攻击 console.log('收到消息:', event.data); }, false); ``` 6. **安全性与隐私** - 使用`frame`和`iframe`时,应考虑隐私和安全问题。例如,不要在未经用户同意的情况下加载第三方内容...
在现代Web应用开发中,"跨域上传文件"是一个常见的需求,特别是在大型系统或分布式环境中。这个场景下,为了优化服务器资源分配,减轻单个服务器的压力,并减少项目文件的迁移和改动,通常会采用多服务器相互调用的...
### XSS跨域攻击知识点详解 #### 一、XSS攻击概览 - **定义与起源**:跨站脚本(Cross-Site Scripting,简称XSS)是一种常见的Web应用程序安全漏洞,最早出现于1996年。XSS攻击利用的是网站对用户输入数据过滤不严...
// 检查来源以防跨域攻击 console.log('Parent received:', event.data); }, false); ``` 在`childPage.html`中发送消息: ```html window.parent.postMessage('Hello from child!', '...
在ASP.NET中实现跨域SSO,主要涉及到以下几个关键知识点: 1. **身份验证模式**:ASP.NET支持多种身份验证模式,如Forms Authentication、Windows Authentication、Cookie Authentication等。在SSO场景中,通常使用...
以下是对XSS跨域攻击防范和antisamy技术的详细阐述: 1. XSS类型: - 存储型XSS:恶意脚本被存储在服务器上,然后在其他用户访问相关页面时执行。 - 反射型XSS:恶意脚本通过URL参数传递,当用户点击链接或在地址...
跨域资源分享(Cross-Origin Resource Sharing,简称CORS)是Web开发中解决浏览器同源策略限制的一种机制。同源策略是浏览器内置的安全措施,限制了来自不同源的“脚本”对网页内容的访问,以防止恶意代码窃取数据。...
为保障跨域访问过程中的信息网络安全,在深入分析其所面临安全风险的基础上,提出了一种跨域访问控制与边界防御模型,该模型将跨域访问过程划分为域内和跨域两个阶段,同时结合相关安全技术进行策略决策和策略实施,...
首先,让我们来了解一下跨域的概念。在Web应用中,浏览器实施同源策略(Same-origin Policy),这意味着一个网页只能访问与其来源URL相同协议、域名和端口的资源。当尝试从一个域名下的页面请求另一个域名的数据时,...
基于二级链结构的跨域数据融合溯源框架设计 自动化 安全分析 安全对抗 威胁情报 网络安全
// 验证来源以防XSS攻击 var iframe = document.getElementById('myIframe'); // 设置iframe的高度 iframe.style.height = event.data.height + 'px'; }, false); ``` 在这个例子中,压缩包中的`content.html`...
### jsp防止跨域提交数据的具体实现 #### 概述 跨域问题一直是Web开发中的一个常见问题。当用户浏览器发起请求时,由于同源策略的限制,不同域名下的资源不能互相访问。为了保证网站安全,JSP项目也需要考虑如何...
### 跨域数据共享的概念与挑战 跨域数据共享是指在不同的组织、部门或系统之间进行数据交流的过程。这一概念的提出旨在打破信息孤岛,促进数据资源的有效利用,为决策提供更全面的支持。然而,跨域数据共享面临着一...