随笔分类 -  Security Programming

摘要:##Paste.deploy 与 WSGI, keystone 小记###名词解释:- **Paste.deploy** 是一个WSGI工具包,用于更方便的管理WSGI应用, 可以通过配置文件,将WSGI应用加载起来.- **keystone** 是 openstack的各模块之间调用时候采取的认证... 阅读全文
posted @ 2014-09-03 18:59 _Boz 阅读(2040) 评论(1) 推荐(0) 编辑
摘要:如何做一份精致的性能测试报告?以上是我在知乎提出的问题,感谢梧桐同学的回答,Quote中的文字是我的描述在做系统的过程中会遇到需要对整个系统做测试的情况,包括一些基准测试,容量测试,压力测试等。如何做一份精致的性能报告书,在测试过程中有哪些量化指标是需要重点考虑的? 有一个现象是很奇怪的,在这行业... 阅读全文
posted @ 2014-06-24 15:17 _Boz 阅读(659) 评论(0) 推荐(0) 编辑
摘要:近来在维护并重构一个原来离职的同事的代码,在将一部分代码从原有逻辑剥离开来的时候遇到了很多的麻烦,希望自己以后不要留下类似的坑,所以在这里做一个总结代码是Python写的,工程很浩大,其中代码运行在一个虚拟化集群中,我的目的是将一部分原有代码逻辑差不多,但是实体(机器)要分开的代码重构其中涉及到主要的有几点约束:1.新分离的代码逻辑和原有的代码逻辑要一样2.其中涉及到一个任务系统,集群中的机器取任务和返回任务都是向一台核心Server获取,新分离的代码中任务申请和返回接口发生改变3.暂时没想到...从原有代码中分离出新代码,且代码逻辑要一样,那么很多人都会偷懒直接Copy一份代码,然后把其中一 阅读全文
posted @ 2013-08-09 15:13 _Boz 阅读(579) 评论(0) 推荐(0) 编辑
摘要:yum 错误TypeError: rpmdb open failed 解决办法 是因为RPM数据库出现损坏导致的,它导致所有的软件的升级、安装甚至是删除都会出现问题,终端出现乱码,YUMEX也用不成,RPM命令也用不成。原因是RPM数据库被破坏,解决方法如下: $ su 切换到root权限yum 错误TypeError: rpmdb open failed解决办法是因为RPM数据库出现损坏导致的,它导致所有的软件的升级、安装甚至是删除都会出现问题,终端出现乱码,YUMEX也用不成,RPM命令也用不成。原因是RPM数据库被破坏,解决方法如下:$ su 切换到root权限# cd /var/lib 阅读全文
posted @ 2013-07-05 17:41 _Boz 阅读(376) 评论(0) 推荐(0) 编辑
摘要:总结commandlinefu.com 的vote数目最多的实用命令如下(按vote数目),送给英文不好的亲们:——————————————lsof -i -P | grep -i "listen"lsof -Pni4 | grep LISTENnetstat -plnt查看正在监听的端口————————————————————————————————————————————————netstat -ant | awk '{print $NF}' | grep -v '[a-z]' | sort | uniq -c列出当前所有网络连接的状态数 阅读全文
posted @ 2013-04-10 21:57 _Boz 阅读(1480) 评论(0) 推荐(0) 编辑
摘要:今天看了一下Go语言,在讲到以往其他语言的异常的时候,Go采用了不同的方式Panic 函数类似于抛出一个异常,这个异常会中断当前的执行函数在 defer 的延迟执行环境中,调用 recover() ,如果 recover() 返回的是 nil表示正常执行,如果非 nil 表示这个 defer延迟环境中”捕获“到了这个 panicrecover() 函数只有在 defer 包裹的执行代码块中能够使用。func throwsPanic( raisefunc func() ) (b bool){ defer func(){ if x:= recover(... 阅读全文
posted @ 2012-12-22 19:53 _Boz 阅读(1952) 评论(0) 推荐(1) 编辑
摘要:.. 阅读全文
posted @ 2012-11-14 11:32 _Boz 阅读(1882) 评论(8) 推荐(1) 编辑
摘要:概述系统性能一直是一个受关注的话题,如何通过最简单的设置来实现最有效的性能调优,如何在有限资源的条件下保证程序的运作,ulimit 是我们在处理这些问题时,经常使用的一种简单手段。ulimit 是一种 linux 系统的内键功能,它具有一套参数集,用于为由它生成的 shell 进程及其子进程的资源使用设置限制。本文将在后面的章节中详细说明 ulimit 的功能,使用以及它的影响,并以具体的例子来详细地阐述它在限制资源使用方面的影响。ulimit 的功能和用法ulimit 功能简述假设有这样一种情况,当一台 Linux 主机上同时登陆了 10 个人,在系统资源无限制的情况下,这 10 个用户同时 阅读全文
posted @ 2012-08-01 10:19 _Boz 阅读(623) 评论(0) 推荐(0) 编辑
摘要:Kerberos协议: Kerberos协议主要用于计算机网络的身份鉴别(Authentication), 其特点是用户只需输入一次身份验证信息就可以凭借此验证获得的票据(ticket-granting ticket)访问多个服务,即SSO(Single Sign On)。由于在每个Client和S 阅读全文
posted @ 2012-05-28 16:39 _Boz 阅读(9944) 评论(0) 推荐(0) 编辑
摘要:作为一些感悟就留着自己珍藏吧,不发到首页了。个人觉得软件设计就应该像搭积木,或者说是俄罗斯方块俄罗斯方块的每一个块都可以看做软件设计中的模块,但是方块的形状是不同的。需要将整个软件设计的良好,我们应当遵循的就是在设计模块过程中模块之间的耦合性。堆俄罗斯方块的方式可以让我们在设计过程中设计良好的接口标准,达到模块之间的耦合减小的同时,让模块之间功能独立,依赖性更低,而且可以将软件的层次划分的更清楚。软件层次是模块与模块之间的中间层的一种抽象,可能在模块与模块之间,也有可能是多个模块与多个模块之间,对于方式是N:M形式。我比较倾向于C使用回调,C++使用接口+多态的方式来完成功能依赖的解耦。pyt 阅读全文
posted @ 2012-05-20 12:22 _Boz 阅读(938) 评论(0) 推荐(0) 编辑
摘要:关于断言,可以作为一种很强大的调试方式或者程序运行时的错误诊断但是断言也不是适合于各种地方,服务器软件和嵌入式程序一般不适用,断言会强制中断正在运行的程序,对于服务器等程序来说,将会是一个灾难。加上,断言会加剧CPU 的负载,其中会调用一些函数。作为调试时使用断言是个不错的选择一般断言:#ifndef NDEBUG assert( conditon ) ;#endif这样,你的断言会在没有定义NDEBUG 的时候检测是否assert(..)中的表达式为真,如果不为真,将终止程序但是,作为一种调试方式,assert()一般不用于判断用户的输入,而是断言程序在某个时刻的状态一定为真,当然,终止程序 阅读全文
posted @ 2012-04-17 20:43 _Boz 阅读(2575) 评论(0) 推荐(1) 编辑
摘要:将依赖于用户输入的数据都看做不安全数据:1.空指针2.字符串的长度3.在限定有输入时的长度 的符号类型4.输入时候的符号5.严格判断输入的类型与所处理的数据的类型是否符合6.禁止格式化输出一般程序员在编写一个函数的时候,只会注意到函数的实现功能,往往忘记了在函数编写过程当中的一些安全因素其实这些东西才是一般大型的公司考察一个程序员是否成熟的标志,当然,只是一方面1:空指针一般在接受一个参数的时候,如果该参数是一个指针或者字符串,当然这里的字符串是传统的C 的char *string 类型你是否会考虑到可能传入的是一个空指针,如果函数中应用了一个空指针作为数据,将会导致程序因非法内存访问而终止所 阅读全文
posted @ 2012-04-17 20:39 _Boz 阅读(728) 评论(0) 推荐(1) 编辑

4AI?Z:cp1z?_RJQle1]Gs;P!T)RHroW|