Yearly Archives: 2014

Libreoffice permission issue under Nginx web server and PHP

We have a feature need to convert office documents to pdf files,because our servers are all CentOS, so we selected LibreOffice to do the conversion. The command can run successfully under console, but failed in web server. Here we got

Posted in Tech Tagged with:

Use DJJob in CodeIgniter

In a web application, time consuming processes, like sending emails, you need make it asynchronous. In this blog, we will introduce how to make a job running in the background using DJJob and crontab or CLI. In the Rails world,

Posted in PHP, Tech Tagged with:

Load database config file from libraries in CodeIgniter

Sometime you will want to load database config variables from your libraries.In this case, if you use $this->_CI->config->load(‘database’), you will get an error: The error somthing like Your application/config/database.php file does not appear to contain a valid configuration array. The

Posted in Tech Tagged with: ,

《Web应用安全权威指南》出版后记

《Web应用安全权威指南》终于出版了,从开始翻译到上市,历时近一年。这期间,译者,尤其是图灵的编辑都付出了巨大的努力。当然,只有获得读者的承认,所有人的努力才不算浪费。 我也是今天刚拿到纸版的书,从印刷质量上来说,还挺不错,字体正合适阅读,封面设计的也很好看;纸质也不错,虽然有点重,不过只有不到400页,拿在手里正好。关键是,价钱也不贵,大概60左右的样子,貌似China-Pub59块多。 如果书中有什么不对的地方,也希望读者能直接和图灵或者译者联系。 1. 关于图灵和本书 首先,我个人认为这本书的主要面向用户为:初中级水平的开发人员,对安全感兴趣又不是特别深入的人;以及经验相对丰富又想做些查漏补缺的人。 这本书主要是面向开发人员的,意在帮助大家开发安全的Web应用,而不是让你成为黑客或者专业的安全人员。 此外,本书除了全世界共通的技术语言之外,中日之间不同的开发方式,IT背景也能帮我们开阔眼界, 促使我们去考虑一些之前没人去考虑的方面。也许有些东西在国内不现实或者不实用,由于译者能力有限,未能全部按照国内情况改写,深感内疚。 再介绍下原作者德丸浩(Twitter ID:@ockeghem https://twitter.com/ockeghem)。2008年创立HASH咨询公司,任董事长。主要从事网络安全性的诊断与咨询工作,并在工作之余通过博客普及网络安全知识。兼任KYOCERA Communication Systems股份有限公司技术顾问、独立行政法人信息处理推进机构(IPA)客座研究员,活跃于日本安全业界。说到IPA,这是在日本非常权威厉害的IT部门,他们除了举办类似国内的程序员、系统分析员等考试之外,还和有很多非常实用的机构和功能,比如没年的开源大奖,未踏(即还没有人踏入过的领域、技术)大奖等,非常贴近实际产业现状和需求。而KYOCERA,即京瓷,则是最近在中国很火的日本管理大师稻盛和夫所创办的企业。 2. 本书内容 本书共分8章,分别是: 第1章 什么是 Web应用的安全隐患 本章是入门引子,非常简短,主要是介绍了什么什么是Web应用中的安全问题,及其出现原因。并提出安全性bug和安全性功能两个概念。 第2章 搭建试验环境 本章介绍了如何安装书中演示例子的环境,包括虚拟机和调试工具Fiddler等。 本书还附带了一个VMware Player虚拟机,里面是一个简单的Web运行环境,功能不比大多数小网站少,非常方便大家亲手进行实践,包括Apache/PHP/邮件服务等。不过遗憾的是里面环境有些是日文的,大家可以和书对照着看。 整个环境可以从http://www.ituring.com.cn/book/1249中的“随书下载”菜单下下载。 第3章 Web 安全基础:HTTP、会话管理、同源策略 可以认为这章是进入后续章节的入门预习,主要介绍了HTTP原理和会话功能。以及主动攻击和被动攻击,及同源策略。 什么是HTTP,URL的结构式怎样的,一个网页请求都会有哪些网络传输?HTTP请求和返回的各字段都是什么意思?GET和POST的区别等等问题,以及现代Web赖以生存的Cookie和Session机制及安全问题,本章都进行了详细的说明。 本章后半部分,对被动攻击和同源策略进行了具体的介绍。 第4章 Web应用的各种安全隐患 这是本书中分量最重的一章,因为它介绍了现代Web安全的最重要3个问题:XSS,SQL注入和CSRF。除此之外,还有一些可能会被我们忽略的小问题,比如重定向问题,邮件发送问题,调用OS命令等问题。 第5章 典型安全功能 本章主要对为了保护系统安全所编写的安全性功能相关的最佳实践,主要就是账号管理、认证授权,最后也介绍了日志管理。 比如说错误消息提示,如果登录的时候email并没有在应用中注册,那么错误消息怎么显示?是“该用户不存在”,还是“登录出错”?这个大难,还是留给各位在阅读本书时自己思考吧。

Posted in 生活, Tech

Docker,云时代的程序交付方式

Docker — 云时代的程序分发方式 要说最近一年云计算业界有什么大事件?Google Compute Engine 的正式发布?Azure入华?还是AWS落地中国?留在每个人大脑中的印象可能各不相同,但要是让笔者来排名的话那么Docker绝对应该算是第一位的。如果你之前听说过它的话,那么也许你会说“没错,就是它”,因为几乎世界各地的开发、运维都在谈论着Docker;如果你还没听说过Docker,那么我真的建议你花上10分钟来阅读本文。 1. Docker简介 1.1. 什么是Docker? Docker是一个重新定义了程序开发测试、交付和部署过程的开放平台。Docker也是容器技术的一种,它运行于Linux宿主机之上,每个运行的容器都是相互隔离的,也被称为轻量级虚拟技术或容器型虚拟技术。而且它有点类似Java的编译一次,到处运行,Docker则可以称为构建一次,在各种平台上运行,包括本地服务器和云主机等(Build once,run anywhere)。 容器就是集装箱,我们的代码都被打包到集装箱里;Docker就是搬运工,帮你把应用运输到世界各地,而且是超高速。 Docker是开源软件,代码托管在GitHub上,使用Go语言编写。Go可以称得上是互联网时代专门为开发分布式、高并发系统而生的编程语言。Docker也可以说是Go语言的一个杀手级应用,而且在Docker生态圈里很多软件也都是使用Go语言编写的。 1.2. Docker历史 Docker项目始于2013年3月,由当时的PaaS服务提供商dotCloud开发,dotClound也是YCombinator S10的毕业生。尽管Docker项目很年轻,到现在也只有15个月而已,然而它的发展势头如此之猛已经让很多人感叹不已了。 2013年10月dotCloud公司名字也由dotCloud, Inc.改为Docker, Inc.,集中更多的精力放到了Docker相关的研发上。 1.3. Docker的技术基石 在进入Docker的世界之前,我们先来看一下Docker实现所依赖的一些技术。 实际上Docker的出现离不开很多Linux kernel提供的功能,甚至可以说Docker在技术上并没有什么特别重大的创新之处,利用的都是已经非常成熟的Linux技术而已,这些技术早在Solaris 10或Linux Kernel 2.6的时候就有了。可以毫不夸张的说Docker就是“站在了巨人的肩膀上”。 下面我们就先来了解一下Docker主要利用的Linux技术。 1.3.1. 容器技术 容器(Container)有时候也被称为操作系统级虚拟化,以区别传统的Hypervisor虚拟技术。它不对硬件进行模拟,只是作为普通进程运行于宿主机的内核之上。 在容器中运行的一般都是一个简易版的Linux系统,有root用户权限、init系统(采用LXC容器的情况下)、进程id、用户id以及网络属性。 容器技术在云计算时代已经被大量使用。Google公司的Joe Beda在今年5月做了一次题为《Containers At Scale

Posted in Docker, Tech

单机版Mesos + Marathon + Deimos + Docker

最近关于Docker的Blog很多都提到了Mesos,确实是在复杂的应用环境下,如何管理集群是一个非常现实的问题。 本文就是参考各种资料,利用Vagrant+VirtualBox构建了一个单机版的Mesos环境。 1. 什么是Mesos? Apache Mesos是一个分布式系统的集群管理软件,它能为我们需要执行的任务在复杂系统中进行资源分配等工作。 Mesos主要由4个模块组成。 进行系统总体管理的Mesos master 为集群提供资源的Mesos slave 进行资源分配、调度(scheduling)的Framework 在Mesos slave上执行具体命令的Executor 关于Mesos的架构,可以参考这里的官方说明。 2. 什么是Marathon? Marathon是Mesos的一个Framework,用来执行需要长时间运行的任务。如果把Mesos比喻成数据中心的Kernel的话,那么Marathon就是它的init活着upstart守护进程。 它还具备HA,Health Checks,服务发现等功能。 3. 什么是Deimos? Deimos是一个Mesos的Docker接口(Plugin),Mesos的Executor,用来集成Docker容器,它是Mesos-Docker的替代产品。 4. 开始试验 4.1. 安装 如果你也用Vagrant的话,那么直接可以使用Provisioning脚本就可以了,我已经放到了GitHub上:https://github.com/liubin0329/mesos-marathon-deimos-vagrant 下载下来之后直接vagrant up就可以。 如果是手工自己安装,可以参考install.sh脚本。 4.2. 测试 启动服务之后,就可以使用例子中的JOB测试了。 为了启动速度,我们预先pull镜像下来。 然后就可以提交Job了。 这个job.json很简单,其意义也很容易理解。主要是cmd这个参数,这是一个简单的理由nc命令实现的Web服务器,放8090端口的时候只是打印出Hello World而已。 值得注意的是如果你的机器硬件不是特别好,需要注意提交job的时候设施合适的CPU和内存使用量,否则很可能导致因为申请不到资源而不能启动任务。 5.

Posted in Docker, Tech

Google FlatBuffers 跨平台序列化工具

作者:Bin Liu 1. 什么是FlatBuffers Google发布了FlatBuffers,一个跨平台,提供了C++/Java接口,注重性能和资源使用的序列化(Serialization)类库。 尤其是FlatBuffers更适用移动设备,他们要求更高的新能,更低的资源需求(内存、带宽、CPU等)。 1.1. 它的特点如下: 不需要打包/解包。它的结构化数据都以二进制形式保存,不需要数据解析过程,数据也可以方便传递。 省内存、性能好(见附录1) 强类型系统,在编译阶段就能预防一些bug的产生 跨平台(C++11/Java) 等等。 1.2. 和Protocol Buffers的不同之处 FlatBuffers和Protocol Buffers很像,他们的最大不同点是在使用具体的数据之前,FlatBuffers不需要解析/解包的过程。 1.3. 和JSON的不同之处 JSON作为数据交换格式,被广泛用户各种动态语言之间(当然也包括静态语言)。它的有点事易于理解(可读性好),同时它的最大的缺点那就是解析时的性能问题了。而且因为它的动态类型特点,你的代码可能还需要多写好多类型、数据检查逻辑。 2. FlatBuffers的使用方法 简单来说使用FlatBuffers需要遵循以下步骤。 编写一个用来定义数据结构的schema(IDL,接口定义)文件 使用FlatBuffer编译器flatc生成数据结构源代码(C++头文件或者Java类) 使用FlatBufferBuilder类创建flat的二进制buffer 保存或者发送buffer 接收并buffer并读取数据内容 这里是一个简单的例子。 将上述代码保存为monster.fbs之后,即可使用flatc来“编译了”。 生成的Java文件有如下代码(Java的使用方法有点怪怪的,估计是作者的C++背景太强了?)。 附录: [1] 性能数据,来源于http://google.github.io/flatbuffers/md__benchmarks.html FlatBuffers (binary) Protocol Buffers LITE

Posted in Tech Tagged with: , , ,

Long Vacation of 奈良

花了一个月,终于将在奈良的相片整理完了,这里再做个目录吧。 Long Vacation of 奈良- 興福寺、猿沢池:http://liubin.org/2014/06/17/long-vacation-of-nara-kohfukuji-sarusawaike/ Long Vacation of 奈良- 灯花会:http://liubin.org/2014/06/17/long-vacation-of-nara-toukae/ Long Vacation of 奈良- 般若寺:http://liubin.org/2014/06/04/long-vacation-of-nara-hannyaji/ Long Vacation of 奈良- 元興寺:http://liubin.org/2014/06/04/long-vacation-of-nara-gangoji/ Long Vacation of 奈良- 薬師寺:http://liubin.org/2014/06/04/long-vacation-of-nara-yakushiji/ Long Vacation of 奈良- 奈良的街道风景:http://liubin.org/2014/06/03/long-vacation-of-nara-street/ Long Vacation of 奈良- 可爱的鹿们:http://liubin.org/2014/06/03/long-vacation-of-nara-deer/ Long Vacation of 奈良-

Posted in 生活 Tagged with:

Long Vacation of 奈良- 興福寺、猿沢池

興福寺(http://www.kohfukuji.com/)貌似前面已经发过了,这里再和猿沢池一块介绍下。 興福寺始建于669年,为世界遗产之一。其中五重塔为50米高的木塔,为仅次于京都东寺五重塔的日本第二高木塔。此外还有三重塔,南园堂,北园堂也都是非常重要的文物。 猿沢池在興福寺旁边,一周只有不到400米,池塘四周的柳树和兴福寺的五重塔交相辉映于池面,被称为「猿沢池月」,也是南都八景(奈良中東大寺・興福寺周边选出来的八处有特色的景观)之一。 猿沢池有七大不可思议的现象 不清 不浊 不出 不入 没有青蛙 不长水藻 魚七分水三分 意思就是既没有流入的河水,池里的水也没有流向别的河流,水量一直保持固定;池里有很多乌龟,但是却从来不会有青蛙,也不会有水草。1959年池水的颜色变为红色,这打破了七大不可思议,甚至有人因此认为“世界末日”要到了。 从猿沢池看兴福寺五重塔 猿沢池旁边写生的学生   猿沢池的七大不可思议现象 池里的乌龟 奈良公园的小鹿 五重塔,天气不好,效果不好。 南园堂旁边的小店。 北园堂

Posted in 生活 Tagged with: , ,

Long Vacation of 奈良- 灯花会

奈良灯花会(http://www.toukae.jp/tokae_s/index.html)是从1999年开始的以奈良公园、东大寺、兴福寺等区域为中心,每年8月举行的为期十天的活动。在这一带会装饰好各种灯饰,山上、湖里,每天晚上都会点灯,以及各种小摊,供有人欣赏。这一片区域面积较大,尤其是在公园大片草坪以及湖上的灯笼比较好看。 由于这是近期的人造景观,也没什么可以细说的,来了奈良,既然人家有这活动,权当参与一下热闹而已。   如果我没记错的话,这应该是兴福寺通往三重塔的地方的向上的台阶那里。 兴福寺的五重塔 汉字“情” 小鹿也出来凑热闹。 伏见堂那里 2013年事第15届了。 falling in love 在日本,什么活动都少不了屋台,即小吃摊。

Posted in 生活 Tagged with: , ,

无觅相关文章插件,快速提升流量