厦门

header的安全配置指南

from: http://drops.wooyun.org/tips/11660x00 背景在统计了Alexa top 100万网站的header安全分析之后(2012年11月 - 2013年3月 - 2013年11月),我们发现其实如何正确的设置一个header并不是一件容易的事情。尽管有数不胜数的网站会使用大量有关安全方面的header,但并没有一个像样的平台能够为开发者们提供必要的信息,以辨别那些常见的错误设置。或者说,即使这些安全方面的header设置正确了,也没有一个平台能够为开发者提供一个系统的测试方法,用来测试正确与否。这些header如果设置错误了不仅会产生安全的假象,甚至会对网站的安全产生威胁。veracode认为安全性header是网络防护中非常重要的一环,并且他希望让开发者们能够简捷、正确地设置站点。如果您对某一header或设置有任何疑问,我们有极好的资源能够追踪到浏览器支持情况。 0x01 细节1. X-XSS-Protection目的这个header主要是用来防止浏览器中的反射性xss。现在,只有IE,chrome和safari(webkit)支持这个header。正确的设置0 – 关闭对浏览器的xss防护  1 – 开启xss防护  1; mode=block – 开启xss防护并通知浏览器阻止而不是过滤用户注入的脚本。  1; report=http://site.com/report – 这个只有chrome和webkit内核的浏览器支持,这种模式告诉浏览器当发现疑似xss攻击的时候就将这部分数据post到指定地址。  通常不正确的设置0; mode=block; – 记住当配置为0的时候,即使加了mode=block选项也是没有效果的。需要指出的是,chrome在发现这种错误的配置后还是会开启xss防护。  1 mode=block; – 数字和选项之间必须是用分号分割,逗号和空格都是错误的。但是这种错误配置情况下,IE和chrome还是默认会清洗xss攻击,但是不会阻拦。如何检测如果过滤器检测或阻拦了一个反射性xss以后,IE会弹出一个对话框。当设置为1时,chrome会隐藏对反射性xss的输出。如果是设置为 1; mode=block ,那么chrome会直接将user-agent置为一个空值:, URL  这种形式。参考文献Post from Microsoft on the X-XSS-Protection HeaderChromium X-XSS-Protection Header Parsing SourceDiscussion of report format in WebKit bugzilla2. X-Content-Type-Options目的这个header主要用来防止在IE9、chrome和safari中的MIME类型混淆攻击。firefox目前对此还存在争议。通常浏览器可以通过嗅探内容本身的方法来决定它是什么类型,而不是看响应中的content-type值。通过设置 X-Content-Type-Options:如果content-type和期望的类型匹配,则不需要嗅探,只能从外部加载确定类型的资源。举个例子,如果加载了一个样式表,那么资源的MIME类型只能是text/css,对于IE中的脚本资源,以下的内容类型是有效的:application/ecmascript  application/javascript  application/x-javascript  text/ecmascript  text/javascript  text/jscript  text/x-javascript  text/vbs  text/vbscript  对于chrome,则支持下面的MIME 类型:text/javascript  text/ecmascript  application/javascript  application/ecmascript  application/x-javascript  text/javascript1.1  text/javascript1.2  text/javascript1.3  text/jscript  text/live script正确的设置nosniff – 这个是唯一正确的设置,必须这样。  通常不正确的设置‘nosniff’ – 引号是不允许的  : nosniff – 冒号也是错误的 如何检测在IE和chrome中打开开发者工具,在控制台中观察配置了nosniff和没有配置nosniff的输出有啥区别。参考文献Microsoft Post on Reducing MIME type security risksChromium Source for parsing nosniff from responseChromium Source list of JS MIME typesMIME Sniffing Living Standard3. X-Frame-Options目的这个header主要用来配置哪些网站可以通过frame来加载资源。它主要是用来防止UI redressing 补偿样式攻击。IE8和firefox 18以后的版本都开始支持ALLOW-FROM。chrome和safari都不支持ALLOW-FROM,但是WebKit已经在研究这个了。正确的设置DENY – 禁止所有的资源(本地或远程)试图通过frame来加载其他也支持X-Frame-Options 的资源。  SAMEORIGIN – 只允许遵守同源策略的资源(和站点同源)通过frame加载那些受保护的资源。  ALLOW-FROM http://www.example.com…

Web 热图库 Heatmap.js

Heatmap.js用来生成基于用户自定义数据上的web 热图,内嵌html5 画布元素。可根据以下数据来源绘制热图:静态数据鼠标移动鼠标点击支持浏览器:Firefox 3.6+, Chrome 10, Safari 5, Opera 11 and IE 9+.[repo owner=”pa7” name=”heatmap.js”]

Hibernate 参数设置一览表

Hibernate 参数设置一览表,相当全的啊!推荐hibernate使用者必备! 属性名 用途 hibernate.dialect 一个Hibernate Dialect类名允许Hibernate针对特定的关系数据库生成优化的SQL.取值 full.classname.of.Dialect hibernate.show_sql 输出所有SQL语句到控制台. 有一个另外的选择是把org.hibernate.SQL这个log category设为debug。eg. true | false hibernate.format_sql 在log和console中打印出更漂亮的SQL。取值 true | false hibernate.default_schema 在生成的SQL中, 将给定的schema/tablespace附加于非全限定名的表名上.取值 SCHEMA_NAME hibernate.default_catalog 在生成的SQL中, 将给定的catalog附加于非全限定名的表名上.取值 CATALOG_NAME hibernate.session_factory_name SessionFactory创建后,将自动使用这个名字绑定到JNDI中.取值 jndi/composite/name hibernate.max_fetch_depth 为单向关联(一对一, 多对一)的外连接抓取(outer join fetch)树设置最大深度. 值为0意味着将关闭默认的外连接抓取.取值 建议在0到3之间取值 hibernate.default_batch_fetch_size 为Hibernate关联的批量抓取设置默认数量.取值 建议的取值为4, 8, 和16 hibernate.default_entity_mode 为由这个SessionFactory打开的所有Session指定默认的实体表现模式.取值 dynamic-map, dom4j, pojo hibernate.order_updates 强制Hibernate按照被更新数据的主键,为SQL更新排序。这么做将减少在高并发系统中事务的死锁。取值 true | false hibernate.generate_statistics 如果开启, Hibernate将收集有助于性能调节的统计数据.取值 true | false hibernate.use_identifer_rollback 如果开启, 在对象被删除时生成的标识属性将被重设为默认值.取值 true | false hibernate.use_sql_comments 如果开启, Hibernate将在SQL中生成有助于调试的注释信息, 默认值为false.取值 true | false**表 3.4.  Hibernate JDBC和连接(connection)属性 ** 属性名 用途 hibernate.jdbc.fetch_size 非零值,指定JDBC抓取数量的大小 (调用Statement.setFetchSize()). hibernate.jdbc.batch_size 非零值,允许Hibernate使用JDBC2的批量更新.取值 建议取5到30之间的值 hibernate.jdbc.batch_versioned_data 如果你想让你的JDBC驱动从executeBatch()返回正确的行计数 , 那么将此属性设为true(开启这个选项通常是安全的). 同时,Hibernate将为自动版本化的数据使用批量DML. 默认值为false.eg. true | false hibernate.jdbc.factory_class 选择一个自定义的Batcher. 多数应用程序不需要这个配置属性.eg. classname.of.Batcher hibernate.jdbc.use_scrollable_resultset 允许Hibernate使用JDBC2的可滚动结果集. 只有在使用用户提供的JDBC连接时,这个选项才是必要的, 否则Hibernate会使用连接的元数据.取值 true | false hibernate.jdbc.use_streams_for_binary 在JDBC读写binary (二进制)或serializable (可序列化) 的类型时使用流(stream)(系统级属性).取值 true | false hibernate.jdbc.use_get_generated_keys 在数据插入数据库之后,允许使用JDBC3 PreparedStatement.getGeneratedKeys() 来获取数据库生成的key(键)。需要JDBC3+驱动和JRE1.4+, 如果你的数据库驱动在使用Hibernate的标 识生成器时遇到问题,请将此值设为false. 默认情况下将使用连接的元数据来判定驱动的能力.取值 true|false hibernate.connection.provider_class 自定义ConnectionProvider的类名, 此类用来向Hibernate提供JDBC连接.取值 classname.of.ConnectionProvider hibernate.connection.isolation 设置JDBC事务隔离级别. 查看java.sql.Connection来了解各个值的具体意义, 但请注意多数数据库都不支持所有的隔离级别.取值 1, 2, 4, 8 hibernate.connection.autocommit 允许被缓存的JDBC连接开启自动提交(autocommit) (不建议).取值 true | false hibernate.connection.release_mode 指定Hibernate在何时释放JDBC连接. 默认情况下,直到Session被显式关闭或被断开连接时,才会释放JDBC连接. 对于应用程序服务器的JTA数据源, 你应当使用after_statement, 这样在每次JDBC调用后,都会主动的释放连接. 对于非JTA的连接, 使用after_transaction在每个事务结束时释放连接是合理的. auto将为JTA和CMT事务策略选择after_statement, 为JDBC事务策略选择after_transaction.取值 on_close |…

MyEclipse 10 下载-补充破解补丁

  刚刚发布了MyEclipse 10,我现在用的还是6.5的版本,6.5的版本是我觉得最好用的一个版本。  我装上了,还没感受到有哪些好用,就是感觉体积庞大,和IBM 的WID一样,是个多面手,啥事都能干,其实经常能使用的也就其中那么几个功能,要是能像插件一样,即插即用就好了。  MyEclipse 10使用最高级的桌面和Web开发技术,包括 HTML5 和 Java EE 6,支持 JPA 2.0、JSF 2.0 、Eclipselink 2.1 以及 OpenJPA 2.0.  而对 IBM WebSphere 用户来说,MyEclipse Blue 支持最新版本的 WebSphere Portal Server 7.0、WebSphere 8 以及以前的版本,无缝的支持 IBM DB2 数据库  MyEclipse 是一个十分优秀的用于开发Java, J2EE的 Eclipse 插件集合,MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开元产品的支持十分不错。MyEclipse目前支持Java Servlet,AJAX, JSP, JSF, Struts,Spring, Hibernate,EJB3,JDBC数据库链接工具等多项功能。可以说MyEclipse几乎囊括了目前所有主流开元产品的专属eclipse开发工 具。  下载 MyEclipse 10 试用版:  http://www.myeclipseide.com/module-htmlpages-display-pid-4.html  MyEclipse 10 发行说明:  http://www.myeclipseide.com/Article106.html  这两个地址是给出来了,可国内就是不能访问,原因你懂得,白搭。还是直接用迅雷来下载吧!  这个是普通版本的下载:  http://downloads.myeclipseide.com/downloads/products/eworkbench/indigo/installers/myeclipse-10.0-offline-installer-windows.exe  这个是blue版的下载:  http://downloads.myeclipseide.com/downloads/products/eworkbench/indigo/installers/myeclipse-blue-10.0-offline-installer-windows.exe  我给出一个普通版国内网盘的下载。  2011-11-05添加破解补丁,补丁用的是破解myeclipse9.1的,我试用过,myeclipse10也可以正常破解的。  下载地址:MyEclipse10普通版本 |Myeclipse10破解补丁

2010年前的愿望

我最想的就是,可以给自己一段时间, 做自由人,可以去自己写自己想做的软件。

走过来,走过去

[flv width="257" height="33"]http://www.xiami.com/widget/0_373807/singlePlayer.swf[/flv]昨天,今天,明天。昨天,我走过来,今天,我走过来,明天,我走过去。走过去了,我知道,知道明天,我需要继续走过来,走过去。

mythine这是一个错误

  一直都打算做一个自己的东西,包含有gtd功能,笔记本功能,提醒功能等等东西,着手做过一些,但都是只有一个功能而已,想把这些都整合在一起成为一个我的东西。我的东西嘛!那就mything吧!在百度谷歌看看,有没有用这个的,mythine!(⊙o⊙)哦,打错字了!改回使用mything吧!mything太普通了,而且更重要的是,今天我发现我犯了一个无法改变的错误,既然无法改变,就别变了,mythine就mytine吧! 这个一个错误!我犯的无法改变的错误的鉴证!

偶的博客用来做什么?

做一件事情,总要有个目的的!建立博客也是一样,我建博客的目的,就是随手记一记自己的东西,随便什么都可以,突然今天我发现,仅仅是为了自己如建立一个博客,那我不如去写日记算了!比这个方便,好多了!所以我改变了我的目的,去为我的朋友去建立,一个计划——为我身边的人,每天为我的朋友亲人写一篇文章!

早操晚操

还是很振奋人心的![flv width="257" height="33"]http://www.xiami.com/widget/5020_399997/singlePlayer.swf[/flv]

好运气,又是一个天上掉馅饼的事

无缘无故的发现自己成蓝钻了,也不知道为什么,蓝钻用来打QQ游戏还可以,但是现在我玩地下城与勇士,要黑钻的,那就更好不过了啊!