- 博客(299)
- 资源 (1)
- 收藏
- 关注
原创 优化之误!
如果在jvm启动时load飙高,然后逐渐正常的情况 ,我们经常会怀疑到 JIT 编译的问题。增加启动时编译的核心数肯定是一个有效的解决办法,但是这个参数在启动时设置后,如果正常运行时不需要这么多核来工作,你又不能在jvm已经启动的情况下动态降低这个参数。所以使用-XX:+TieredCompilation进行分层编译,可以缓解这个问题,事实上也有很多case使用这个参数解决了jvm启动时load飙
2015-07-20 14:38:49 3392
原创 ibatis[mybatis]的安全加固
对于mapping框架,其实预编译语句已经解决了绝大多数的sql注入。但是对mapping如果支持动态语句,就和程序拚接一样存在sql注入的可能。所以在ibatis[mybatis]中,安全加固主要针对 $ 符号拚接的动态语句select * from userinfo where name = {#name} oder by $orderColumn$ $sortMode$这是一种非常典型的场
2015-07-14 11:00:38 4418
原创 Eclipse现在越来越恶心了,会做自认为聪明事,如果发现项目依赖jar包所在的其它项目在同一workspace,会自动加入项目依赖,于是各种坑出来了,发现好多次了。
Eclipse现在越来越恶心了,会做自认为聪明事,如果发现项目依赖jar包所在的其它项目在同一workspace,会自动加入项目依赖,于是各种坑出来了,发现好多次了。
2015-05-22 11:33:03 2033 2
原创 分析一个bug,竟然还被误导
现象: 现上一个应用在使用css扫描时经常出现cpu被吃掉的情况 ,一会吃掉一个核,一会吃掉一个核 。分析肯定是某种条件下触发了死循环或大量耗时cpu操作。于是用jstack拿到线程栈:直接定位到270行:第一印象是循环问题,但是进入this.nextChar()后发现,有一个buf是动态扩容的: public int nextChar() throws IOException { c
2015-03-09 16:00:21 3180
原创 关于 Relative Reference url
大数据时代互联网安全越来越重要了,很多网站都开始实施全站https。但是为了容错,当https服务不可用时,需要重新跳转向http,那么页面中的url到底是使用http还是https?当然如果都写成https,当https服务不可用时所有访问都重定向到http,或当https服务可用时所有http都重定向到http都重定向到https,这样一旦出现需要切换的场景,所有访问都要经过一次跳转是不能接受
2015-02-09 16:15:45 2742
原创 移动应用场景下,ip应该包括port,不带端口号的ip已经没有意义了。
在以移动应用快速发展的今天 ,对于客户端源ip,port是识别客户端的重要组成 ,因为基站的ip基本是共用的,只有ip+port才能标识一个客户端连结,纯ip只能相当于以前的接入商。所以现在以迁移应用为主要应用在识别客户端时一定要以ip:port来作为完整的标识 。
2015-01-23 15:16:31 2474
原创 JAVA7环境下Spring容器对locale对象反序列的bug。
Spring中对于对象的反序化时,需要调用readResolve方法来校验对象的完整性。对于java6的Locale对象,具体实现private Object readResolve() throws java.io.ObjectStreamException { return getInstance(language, country, variant);}没有问题。但是对于J
2015-01-19 13:54:44 4427
原创 new URL("http://unsafedomain#www.safedomain.com").getHost()竟然能返回unsafedomain#www.safedomain.com,真是醉了
new URL("http://unsafedomain#www.safedomain.com").getHost()返回unsafedomain#www.safedomain.com, 如果我认为*.safedomain.com都是安全的,不是中招了?为什么URI没有这个问题?不是同一批人实现的?
2015-01-15 17:44:42 4169
原创 webx中保留原spring servlet模块的配置
虽然很猥琐,但是业务需求要求在webx中保留原来的运行在spring模块上的servlet功能 。几经折腾,总算整合好了。新建一个 webx项目,把webapp下的所有目录 copy到原来模块对应目录中。除了web.xml,其它的邮webx生成的xml都copy到原工程相应目录下。编程webx.xml1.注释 org.springframework.web.context.
2014-12-05 12:40:15 3042
原创 因为业务需要,用nodejs写了一个css解析器,因为是基础库,想开源,不知道有没有人需要。
一般而言htmlparser的解析使用得比较多,node库中已经有了,npm install -g htmlparser2就可以安装。这段时间要实现nodejs上的安全扫描,需要对html,css,js进行解析,css主要是限制一些绝对定位,浮层和url,防止产生钓鱼或攻击。所以写了一个css的解析器。感觉 这些基础库应该公开出去,但是不知道有多少人有这个需求。
2014-12-04 15:55:03 2623
原创 刚刚被电信坑了,升级宽带后,访问所有的资源都超时。
打电话给10000,一直说我浏览器的问题。我手机上网同时出现同样的问题,难道也是浏览器的问题?开了虚拟机使用里面的ie同样的问题。客服还是一口咬定是浏览器的问题,直想当面扇她啊。把路由器恢复到出厂设置都不行,最后想起上次升级带宽时,要把光猫重启一下,然后一切就ok了。
2014-12-03 22:15:31 2305
原创 htmlparser2#Tokenizer.prototype._stateInNamedEntity bug
source:Tokenizer.prototype._stateInNamedEntity = function(c){ if(c === ";"){ this._parseNamedEntityStrict(); if(this._sectionStart + 1 < this._index && !this._x
2014-12-01 17:20:49 1352
原创 关于substring的char[]共享
我们知道,对于一个较大的String对象如果从中获取一个子串,jdk默认子串的char是共享原串的char,即子串的char[]是原串的char[]中的一部分,这样对于一个原串多个子串的情况可以节省很大空间。但是也正是因为共享,如果一个很大的原串在获取一个很小的子串后,原串不再需要,却因为子串共享了char[]一直不能释放,在很多时候造成相反的结果,甚至出现性能上的问题:参见:https://co
2014-11-03 09:09:27 2389
原创 又一次遇到+=操作的隐藏转型问题。
隐藏转型的问题,对于简单的例子,大家都已经知道:short i=1,j=1;short k = i+j ;//编译错误,需要手工转型 。但是 i++是可以的。这里就涉及隐藏转型的问题。今天优化代码,原来的double用float,有一处没有修改,竟然能正确编译: float sum = 0; float[] location = point.getLocation();
2014-08-26 11:37:49 1504
转载 Java 8 Update 11 Broke Third Party Tools
Oracle's latest release of Java, 8 update 11 (and 7 update 65), has caused problems for some third-party tools. One of the affected tools is ZeroTurnaround's JRebel, with the Groovy programming langua
2014-08-19 17:40:42 1399
原创 JVM hang时,Eden区100%,所有线程包括gc线程被 blocked分析
jstat -gcutil pid 1000 S0 S1 E O P YGC YGCT FGC FGCT GCT 5.68 36.18 100.00 1.50 11.93 14 0.555 0 0.000 0.555 5.68 36.18 100.00 1.50 1
2014-08-14 11:05:11 11141 1
原创 一些周期性GC的原因
1.对于tomcat:预防内存泄露监听器 JreMemoryLeakPreventionListener在工作,默认每隔一小时触发一次System.gcClass clazz = Class.forName("sun.misc.GC");Method method = clazz.getDeclaredMethod( "requestLatency",
2014-08-01 10:43:40 3803
原创 大量数据更新导致fgc频繁引起jvm服务暂停。
线上跑的几台服务器突然出现大量fgc,由于在fgc过程的stop the world太久,引起其它应用访问该服务器上的接口大量超时。(发生超时的时间点和fgc时间点一致)先进行初步的优化。方案:修改CMSInitiatingOccupancyFraction=85这个调低到60,加快cms gc处理防止concurrent mode failure触发FGC, 减少CMSMax
2014-07-11 10:58:06 6220
原创 聚类相关
归一化:可以将大量重复特征聚合为单一特征,降低重复带来的相似度差异。方法: Vx = Vx /abs(v1)+...abs(Vn)词干处理:(变形词,同意词,近义词聚合) 减少特征的重复性 imaging-images buy-bought 我-俺 早餐-早饭.......停用词:(弱特征)大量出现的没有实际特征意义的虚词,副词,语气词等 I ,am, is ,a,an,always 我,啊,了
2014-07-02 08:50:04 1610
原创 tomcat的webappclassloader中一个奇怪的异常信息
如果一个应用抛出大量的Class not found信息,一般你会怀疑包冲突。可是tomcat的webappclassloader却有这样的问题:如果一个应用发布出现问题, webappclassloader的started属性被设为false.然后其它线程如果继续使用webappclassloader进行class load,则大量的Class not found异常被抛出: 1391
2014-06-18 15:31:20 6665
原创 chrome,safira的自动纠错之过
http://www.host.com\aaa这样的URL在chrome,safira上会自动纠错为: http://www.host.com/aaa.这是人性化吗?这是一个纯粹的违反RFC的BUG。引起的安全问题是不容忽视的。假如 www.aaa.com是已经认证的安全域名,现在来了一个http://www.bbb.com\@www.aaa.com/path的URL,你去检查它是否安全,无论任何
2014-05-17 14:50:53 1701 1
原创 联通假4G欺骗消费者!
之前预约了联通4G升级,官网上说从4月18日开始到5月1月生效,4月18日到5月1日之间10010会联系预约用户更改套餐。今天24号收到联通业务员打来的电话,明确告知:联通4G只是套餐次费是4G的,网络还是3G模式,速度没有任何提升。原来改资费就叫换代,那么联通为什么不叫4F(fee)而用4G(gengeration)来欺骗消费者?
2014-04-24 08:47:38 3485 2
原创 收到csdn的一个技术峰会的邮件,主题全是乱码。
连一个邮件主题都不知道如何处理,还谈什么技术峰会?“=?GB2312?B?0+vX7se/tPO/qtS0vK/IurX3tsjPtc2zTWVzb3PX99Xfo6xTcGFya7S0yrzNxbbTs8nUscPmttTD 5g==?=”这主题牛了。原始消息内容:正确的折行应该是"=?GB2312?B?0+vX7se/tPO/qtS0vK/IurX3tsjPtc2zTWVzb3PX99Xfo6
2014-03-26 10:15:34 2092
原创 freeradius增加Access-Challenge支持
freeradius默认的逻辑不支持Access-Challeng,只在特定auth-type中Access-Challeng,在auth.c中 只对request->proxy_reply包进行处理,所以你在普通逻辑中如果想返回Access-Challeng必须增加逻辑:jradius中: RadiusPacket reply = new
2014-02-14 19:12:30 5047 4
原创 一次低级的错误耽误了一周时间
春节前测试nas设备和freeradius服务器之间的联调。radius服务无论使用freeradius的radtest程序还是jradius的代码都测试正常。但是从nas设备发过来密码就是不正确。开始以为是加密方式不一致,经过udp抓包比对都是pap方式加密,但是密码坚决不正确。前节因为没有太多时间就放假了,只能拖到节后调试。春节在家闲着的时候又把rasius协议和jradius的实现全部看一遍
2014-02-11 11:32:03 2001
原创 移动4G到底有多快,让我来告诉你
看到流行的一句话:移动4G到底有多快,让我来告诉你,如果你晚上睡觉忘记关流量,早上起来你的房子就归移动了。和我之前的文章一个意思,我们不是说移动4G的技术不好,而是说在目前这种资费政策下,速度==狗屁!138元套餐600m流量,看一场电影广告还没有过去费用就没有了。这对普通网民有什么意义?
2014-01-24 11:23:12 3689 5
原创 10年以后还看到这样的代码
while(rs.next()){ count++; String ip = rs.getString("ip"); int port = rs.getInt("port"); String type = rs.getString("type");
2014-01-10 15:29:23 2300 6
原创 Eclipse 的错误提示太狗血了
写一个类继承了一个公用类,一直提示The hierarchy of the type xxx is inconsistent。排查了很久,原来是那个业在1.6环境下编译的,我把项目设成 1.5的编译,不认识1.6编译的那个类的,项目重新设置成1.6就ok了,关键是这提示,真的太狗血啊。
2013-12-25 16:46:59 1728
原创 freeRadius2.2.3+jradius1.1.4配置手记
每个版本的不同组合都有不同的坑,折腾了两三天,总算把最新版freeRadius2.2.3+jradius1.1.4配置成功。虽然jradius1.0.0和freeradius整合很容易配置,但是它本身是一个beta版,已知的bug太多。高版本虽然有也存在bug,但至少修改了之前低版本已知的bug。所以还是以高版(1.1.4)为基础进行折腾。freeRadius的最新稳定版是2.2.3, 基于相同的
2013-12-25 14:43:19 5854
原创 今天想当然地被scala小坑了一下,Source的getLines回返的是Iterator我想当然地以为是list.
调试的时候第一次输出到屏幕,再输入到文件就没有内容了。原来返回的是Iterator而不是List, 第一次打印到屏幕时Iterator已经空了。
2013-12-20 11:40:10 3405
原创 想做一个SSL代理的集群中,有很多问题需要解决,I am all grateful to you for your advice
应用本身应该不用考虑接入的事,所以想建立一个ssl的代理集群,需要用https的应用直接部署到这个代理后面。但是这样一来就需要代理能管理多证书。而代理要管理多证书,就要知道请求是发往哪个域的,而要知道请求是发往哪个域的就要从http的host中获取,但在https做判断的时候http本身还没有建议,因为https先于http接受请求,简单说http是https的一个中间环节,这样就限入了死循环。a
2013-12-19 11:26:37 1596
原创 今天继续看scala的文档时,突然有一种奇怪的感觉,scala会死。
但愿这种感觉只是我的一种错觉,可是仍然有强烈的这程感觉 ,因为其中有太多的无厘头,有些完全就是设计者的标新立异,没有任何内存逻辑和理由,就是为了标新立异。
2013-12-18 11:52:35 1696 1
原创 性能优化的异常与正常逻辑的处理。
有一个交易业务有多个业务逻辑,举一个简单的例子一个支付交易可能有现金,购物券,打折卡之类同时支付。正常的逻辑就是每一个支付种类都是一个事务,需要同时开启多个事务,如果以后再有其它组合方式,事务会更多。这时交易如果交易异常,一种想法是把已经成功的事务保存下来,下次重新提交时提交未成功的事务。这看下看起来很好,在处理异常时支付时可以节省前面已经成功的事务的开销。但是,我们要知道,99.x%的情况下我们
2013-12-12 15:28:12 1912
原创 只有脑子坏了才会用中国移动的4G
最低套餐138元,含600m流量,而4g网速平均在60m到100m之间,嗯 ,138元可以看10秒的足球实况,然后洗洗睡吧。
2013-12-05 14:24:30 1715
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人