SSL证书链原理和使用

作者:Rui 发布时间:September 28, 2016 分类:WEB 浏览:709

Tomcat 绑定域名,防止恶意解析

作者:Rui 发布时间:August 19, 2016 分类:JAVA,WEB 浏览:1,868

如果未备案的域名绑定到自己发布的web服务上,就会收到电信运行商的警告,如果不处理就可能会被工信部封停IP,所以我们在Tomcat上发布公网的web服务时,需要设置绑定域名,这样才能安全的保护自己的web服务不会被恶意解析。

配置tomcat/conf/server.xml 文件,找到下面部分:
tomcat.png

此处defaulthost="localhost" 改为"forbidden" ,表示默认所有访问都是禁止,然后将Host的name指定可以访问的域名和IP,这样就可以限制未绑定的域名不能够访问到Tomcat下的web服务。

Typecho 插件:阿里云文件存储插件

作者:Rui 发布时间:February 27, 2016 分类:WEB 浏览:742

Typecho 阿里云文件存储插件

AliyunOSS.zip

Typecho主题: Material

作者:Rui 发布时间:September 9, 2015 分类:WEB 浏览:1,370

下载代码

git clone https://github.com/uidea/typecho-theme-modernist.git themes/modernist

启用

外观 -> Material Theme -> 启用即可

JAVA WEB支持CORS 跨域访问

作者:Rui 发布时间:July 10, 2015 分类:JAVA,WEB 浏览:1,570

平时在web项目开发中会经常遇到一些跨域操作,但由于由于安全限制(同源策略, 即JavaScript或Cookie只能访问同域下的内容),会造成Origin null is not allowed by Access-Control-Allow-Origin”错误。目前经常用于跨域操作的两个解决方案: JSONP和CORS(Cross Origin Resource Sharing )

问题原因

这是由于浏览器的同源策略限制的缘故,简单来说,从HTML中发出XMLHttpRequest 请求时,Browser会做检查,如果发现Response中没有Access-Control-Allow-Origin Header或Access-Control-Allow-Origin Header Header的值与 HTML的 orgin 不同时,Browser会拒接绝该Response,Javascript就收不到该Response。 本地HTML的Origin是 null, 而Server端没有发出Access-Control-Allow-Origin Header Header给Browser, 所以会有了“Origin null is not allowed by Access-Control-Allow-Origin”错误。

JSONP和CORS比较

  • JSONP 只能用于GET请求,并且有一定的安全隐患,因为JSONP的实现机制实际上类似于注入脚本
  • CORS Cross Origin Resource Sharing (CORS) W3C标准,专门用来解决跨域问题。支持各种形式的请求。由于这是比较新的标准,旧的浏览器会不支持。

CORS 原理

CORS 定义了一套Access-Control Header控制的标准, 定义以下头部信息,来控制是否允许跨域访问,什么样的请求能够跨域

Access-Control-Allow-Origin Response Header
Access-Control-Allow-Credentials Response Header
Access-Control-Expose-Headers Response Header
Access-Control-Max-Age Response Header
Access-Control-Allow-Methods Response Header
Access-Control-Allow-Headers Response Header
Access-Control-Request-Method Request Header
Access-Control-Request-Headers Request Header

CORS 浏览器支持

QQ图片20160224130720.png

目前主流的浏览器大多都支持CORS,旧版的 IE7不支持。

Tomcat 下配置 CORS

Apache Tomcat 从7.0 版本之后才支持CORS,以下配置示例

<filter>
  <filter-name>CorsFilter</filter-name>
  <filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
</filter>
<filter-mapping>
  <filter-name>CorsFilter</filter-name>
  <url-pattern>/*</url-pattern>
</filter-mapping>

详细的配置参数请参见: http://tomcat.apache.org/tomcat-7.0-doc/config/filter.html#CORS_Filter

相关文档:
http://enable-cors.org/
https://www.w3.org/TR/cors/