自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(173)
  • 资源 (2)
  • 收藏
  • 关注

原创 在Nginx下对网站进行密码保护

本文转自:在Nginx下对网站进行密码保护http://www.iii-soft.com/forum.php?mod=viewthread&tid=1680&fromuid=380很多时候我们需要对一些网站进行密码保护,比如团队内部的站点、demo站点等等。这里所说的密码保护是服务器级的,并非网站应用层的注册登录那一套,而是利用服务器配置和htpasswd文件来实现访问的密码验证。

2013-07-02 11:37:55 714

原创 SQL注入原理深度解析

本文转自:http://www.iii-soft.com/forum.php?mod=viewthread&tid=1613&extra=page%3D1 对于Web应用来说,注射式攻击由来已久,攻击方式也五花八门,常见的攻击方式有SQL注射、命令注射以及新近才出现的XPath注射等等。本文将以SQL注射为例,在源码级对其攻击原理进行深入的讲解。一、注射式攻击的原理注射式攻击的根源

2013-07-02 11:36:46 752

转载 网上银行系统安全体系浅析

本文转自:http://www.iii-soft.com/forum.php?mod=viewthread&tid=1626&extra=page%3D1引言网上银行系统是银行通过互联网为客户提供各种金融服务和信息增值服务的系统。为了能够安全地开展网上银行业务,必须在以下几个层面上采取不同的安全技术规范来保证系统的安全性,如安全策略、物理安全、系统资源安全、应用系统安全、数据通信安全、运行

2013-06-06 00:17:42 852

转载 银行系统安全防护方案

本文转自:http://www.iii-soft.com/forum.php?mod=viewthread&tid=1627&extra=page%3D11.银行信息系统概述   银行系统包括人民银行、银监会以及下属个部门和各国有商业银行、股份制银行、政策银行以及银联等银行机构的信息系统,其安全状况直接关系到国家经济形式和国计民生。银行业务信息化在全国范围内是走在前面的。从规划的角度看,银行的

2013-06-06 00:16:28 811

转载 HTTP协议详解

本文转自:http://www.iii-soft.com/forum.php?mod=viewthread&tid=1610引言                                        HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目前在WWW中使用的是HT

2013-06-04 15:08:33 220

转载 IDS的弱点和局限

本文转自:http://www.iii-soft.com/forum.php?mod=viewthread&tid=1605&extra=page%3D1IDS的弱点和局限1 NIDS的弱点和局限NIDS通过从网络上得到数据包进行分析,从而检测和识别出系统中的未授权或异常现象。 1.1 网络局限 1.1.1 交换网络环境 由于共享式HUB可以进行网络监听,将给网络安全带来极

2013-06-04 12:55:30 363

转载 入侵检测技术知识介绍

本文转自:http://www.iii-soft.com/forum.php?mod=viewthread&tid=1604&extra=page%3D1入侵检测产品分析 1. 入侵检测产品   一个入侵检测产品通常由两部分组成:传感器(Sensor)与控制台(Console)。传感器负责采集数据(网络包、系统日志等)、分析数据并生成安全事件。控制台主要起到中央管理的作用,商品化的产品

2013-06-04 12:53:04 570

转载 域名生死战 - 浅析域名安全

本文转自:http://www.iii-soft.com/forum.php?mod=viewthread&tid=1139一、引子    对于广大互联网公司来说,域名是入口,同时也是基石。一旦域名出现问题,对于普通用户来说,获取服务的大门封死,这“公司”便不复存在了。    对于互联网公司来说,如此重要的域名,面临哪些安全风险?又会有哪些好的防护措施与安全实践呢?

2013-06-03 14:09:52 426

转载 75个顶级开源安全应用

本文转载自: http://www.iii-soft.com/forum.php?mod=viewthread&tid=1513   随着网络犯罪的日益增多,或许我们需要更多资金投入到安全方面。不过,你并非一定要花钱购买安全应用,开源社区一直在不断开发优秀的安全工具,以满足更广泛的安全需要。下面是由国外专家总结出来的75个顶级开源安全应用,共大家参考。反病毒/反恶意软件工具1、Cl

2013-06-03 12:54:57 1278

转载 浅谈IDA脚本在漏洞挖掘中的应用

本文转载自:http://www.iii-soft.com/forum.php?mod=viewthread&tid=1138前言IDA毫无疑问是逆向领域里的一大神器,无所不能。有人的地方就有江湖,有江湖的地方就有武器。那么,在逆向这个江湖中,IDC和IDAPython就好比倚天剑和屠龙刀,威力无比。在漏洞挖掘领域,IDA同样能够大展身手。OpenRCE上提供的BugScam脚本正

2013-06-03 12:52:58 741

转载 计算机网络与信息安全研究方向

本文转载自:http://www.iii-soft.com/forum.php?mod=viewthread&tid=6021、信息安全算法类:包括密码算法、信息隐藏与检测算法、数字水印嵌入与检测算法、数据挖掘与过滤算法、量子密码算法等。2、信息安全协议类:包括认证协议、密钥交换与管理协议、电子支付协议、多方安全计算协议以及安全协议的安全性分析理论与方法等。3、信息系统安全类:包括可信

2013-06-03 12:51:36 1106

转载 使用开源软件构建网络安全监控系统

本文转载自:http://www.iii-soft.com/forum.php?mod=viewthread&tid=1517     文中提出使用开源的软件建设nsm系统(网络安全监控系统)类似于现在业内多次提倡的安全管理平台,但nsm作为开源软件,其目的主要是进行审计。文章的作者richard bejtlich是foundstond公司的高级顾问人员,曾参与美国联邦调查局多个项目,并负

2013-06-03 12:50:11 740

原创 Tuxedo学习摘记

1. 强大的C/S通信功能       不仅支持请求/应答,还支持保持交易状态的会话模式、基于发布/订阅的事件代理模式、基于消息通知的单播/多播模式、基于消息队列的可靠消息存储和转发方式2. 强大的联机交易功能       通信传输的只是较少的客户请求服务名和服务结果,不再是大量繁琐的SQL请求应答,有异步RPC机制实现扇出并行、利用MSSQ实现多处理并行、利用转发机制实现流水线并行

2013-03-26 15:16:28 470

原创 编写Makefile

编写Makefile1. 一个例子假设我们有下面这样的一个程序,源代码如下:[c-sharp] view plaincopyprint?/* filename: main.c */  #include "mytool1.h" #include "mytool2.h"    int main(int argc,char **

2013-03-26 11:40:14 254

原创 extern “C"作用

1、在cpp文件中调用c文件中实现的函数的时候,需要用extern "C"声明该函数,否则cpp会按名字改编后的函数名去找该函数而找不到。(这是作用)   c文件中有一函数:              void Transfer(int a; char b);   cpp文件中必须用extern "C"声明该函数如下才可以实行调用:            extern "C" vo

2013-03-26 11:27:32 235

转载 用对话框作为主窗口

前面我们在编写Win32应用程序的思路都是:1、设计窗口类。2、注册窗口类。3、创建窗口。……然而,当我们接触控件以后, 会发现一个问题,我们在窗口上放置控件实在不好弄,而资源中的对话框具有图形编辑器,操作起来相对方便。于是,就有了一个想法:把对话框用作主窗口,那我们在布局控件时就轻松了。其实这想法在网上已有牛人做了,不过,人家是用Win32汇编干的,当然,要把它变为C++就更

2013-02-05 21:21:01 242

原创 VC++2005 CString和char*的相互转换

首先声明我不是一个高手,而是一个初学者,文章同样也是一个初学者对于CString和char*转换的理解。      因为需要,接触C++一段时间了,其中最为困扰我的问题就是在使用C++的过程中CString和char*的转换,在网上搜索了一下,看到问这个问题的人挺多的。我使用的平台是Win2003+VC 2005,本来这个很简单的问题稍微复杂了一点在2005里面。    在我的工程里面

2011-12-23 14:12:00 261

原创 一 IT项目的实质

现代项目管理起源于美国。20实际50年代初,为了阻止苏联的核侵略,美国海军开始实施“北极星”发射项目。该项目复杂且风险巨大。但是他们应用了一种项目管理方法使项目从设想变成现实,该方法被认为是取得巨大成功的关键,此后,不同行业的组织开始把项目管理作为一种定义,管理和执行工作以实现特定目标的方法。    今天,项目管理被视为一种应对各类组织机会和挑战的有效方法项目管理致力于降低成本和缩短产品开发周

2011-12-14 21:24:32 257

原创 图创建

前面我们讨论过图的基本结构是什么样的。它可以是矩阵类型的、数组类型的,当然也可以使指针类型的。当然,就我个人而言,比较习惯使用的结构还是链表指针类型的。本质上,一幅图就是由很多节点构成的,每一个节点上面有很多的分支,仅此而已。为此,我们又对原来的结构做了小的改变:typedef struct _LINE{ int end; int weight; struct _LINE* n

2011-11-27 22:57:08 90

原创 图结构

图是数据结构里面的重要一章。通过图,我们可以判断两个点之间是不是具有连通性;通过图,我们还可以计算两个点之间的最小距离是多少;通过图,我们还可以根据不同的要求,寻找不同的合适路径。当然,有的时候为了计算的需要,我们还需要从图中抽象出最小生成树,这样在遍历计算的时候就不需要持续判断是不是遇到了循环节点。当然,这所有的一切都是从图的表示开始的。    1)矩阵表示    矩阵表示可以说是最简单

2011-11-27 22:56:01 257

原创 哈希二叉树

用过平衡二叉树的朋友都清楚,平衡二叉树的最大优点就是排序。不管是在数据插入的时候还是在数据删除的时候,我们都要考虑到数据的排序情况。但是和数据的添加、删除一样重要的,还有数据的查询。很不幸,平衡二叉树经常由于节点的添加和删除,数据的查询效率会变得非常低下。朋友们可以看看下面这样的一个极端场景,所有分支节点都只有一边存在数据: /** 7 3*

2011-11-27 22:52:24 522

原创 哈希表

hash表,有时候也被称为散列表。个人认为,hash表是介于链表和二叉树之间的一种中间结构。链表使用十分方便,但是数据查找十分麻烦;二叉树中的数据严格有序,但是这是以多一个指针作为代价的结果。hash表既满足了数据的查找方便,同时不占用太多的内容空间,使用也十分方便。    打个比方来说,所有的数据就好像许许多多的书本。如果这些书本是一本一本堆起来的,就好像链表或者线性表一样,整个数据会显得非

2011-11-27 22:49:38 302

原创 排序二叉树的保存和加载

排序二叉树是我们开发中经常使用到的一种数据结构,它具有较好的插入、删除、查找特性。但是由于二叉树的指针较多,所以相比较其他的数据结构而言,二叉树来得比较麻烦些。但是也不是没有办法,下面介绍一下我个人常用的方法。    我们知道,如果一个二叉树是一个满树的话,那么二叉树的节点应该是按照1、2、3、4依次排开的。但是现实情况是这样的,由于排序二叉树自身的特性,某个分支节点常常可能左半边有分支,右半

2011-11-27 22:46:35 319

原创 排序二叉树删除3

3 普通节点的删除    3.1 删除的节点没有左子树,也没有右子树     测试用例1: 删除节点6/** * 10 ======> 10* / \ \* 6 15 15*

2011-11-27 22:38:37 535 1

原创 排序二叉树删除2

2.4 删除节点的左右子树都存在,此时又会分成两种情形    1)左节点是当前左子树的最大节点,此时只需要用左节点代替根节点即可 /** * 10 ======> 6* / \ / \* 6 15 5

2011-11-27 22:32:30 487

原创 排序二叉树删除2

2.4 删除节点的左右子树都存在,此时又会分成两种情形    1)左节点是当前左子树的最大节点,此时只需要用左节点代替根节点即可 /** * 10 ======> 6* / \ / \* 6 15 5

2011-11-27 22:19:51 90

原创 排序二叉树删除1

相比较节点的添加,平衡二叉树的删除要复杂一些。因为在删除的过程中,你要考虑到不同的情况,针对每一种不同的情况,你要有针对性的反应和调整。所以在代码编写的过程中,我们可以一边写代码,一边写测试用例。编写测试用例不光可以验证我们编写的代码是否正确,还能不断提高我们开发代码的自信心。这样,即使我们在开发过程对代码进行修改或者优化也不会担心害怕。然而看起来编写测试用例是一个繁杂的过程,但是从长期的收益来看

2011-11-27 22:18:46 1215

原创 排序二叉树插入

二叉树的节点插入比较简单。一般来说,二叉树的插入主要分为以下两个步骤:    1) 对当前的参数进行判断,因为需要考虑到头结点,所以我们使用了指针的指针作为函数的输入参数    2) 分情况讨论:        如果原来二叉树连根节点都没有,那么这个新插入的数据就是根节点;        如果原来的二叉树有根节点,那我们判断这个数据是否存在过,如果存在,那么返回;如果不存在,那么继

2011-11-27 22:11:48 871

原创 排序二叉树

前面我们讲过双向链表的数据结构。每一个循环节点有两个指针,一个指向前面一个节点,一个指向后继节点,这样所有的节点像一颗颗珍珠一样被一根线穿在了一起。然而今天我们讨论的数据结构却有一点不同,它有三个节点。它是这样定义的:typedef struct _TREE_NODE{ int data; struct _TREE_NODE* parent; struct _TREE_NODE

2011-11-27 22:08:15 2464

原创 循环单向链表

前面的博客中,我们曾经有一篇专门讲到单向链表的内容。那么今天讨论的链表和上次讨论的链表有什么不同呢?重点就在这个"循环"上面。有了循环,意味着我们可以从任何一个链表节点开始工作,可以把root定在任何链表节点上面,可以从任意一个链表节点访问数据,这就是循环的优势。    那么在实现过程中,循环单向链表有什么不同?    1)打印链表数据 void print_data(const

2011-11-27 22:04:03 347

原创 双向链表

前面的博客我们介绍了单向链表。那么我们今天介绍的双向链表,顾名思义,就是数据本身具备了左边和右边的双向指针。双向链表相比较单向链表,主要有下面几个特点:    (1)在数据结构中具有双向指针    (2)插入数据的时候需要考虑前后的方向的操作    (3)同样,删除数据的是有也需要考虑前后方向的操作    那么,一个非循环的双向链表操作应该是怎么样的呢?我们可以自己尝试一下:

2011-11-27 22:01:27 238

原创 单向链表

有的时候,处于内存中的数据并不是连续的。那么这时候,我们就需要在数据结构中添加一个属性,这个属性会记录下面一个数据的地址。有了这个地址之后,所有的数据就像一条链子一样串起来了,那么这个地址属性就起到了穿线连结的作用。    相比较普通的线性结构,链表结构的优势是什么呢?我们可以总结一下:    (1)单个节点创建非常方便,普通的线性内存通常在创建的时候就需要设定数据的大小    (2)

2011-11-27 21:51:22 234

原创 线性堆栈

前面我们讲到了队列,今天我们接着讨论另外一种数据结构:堆栈。堆栈几乎是程序设计的命脉,没有堆栈就没有函数调用,当然也就没有软件设计。那么堆栈有什么特殊的属性呢?其实,堆栈的属性主要表现在下面两个方面:    (1)堆栈的数据是先入后出    (2)堆栈的长度取决于栈顶的高度    那么,作为连续内存类型的堆栈应该怎么设计呢?大家可以自己先试一下:    (1)设计堆栈节点

2011-11-27 21:47:11 287

原创 线性队列

这里的线性结构实际上指的就是连续内存的意思,只不过使用“线性”这个词显得比较专业而已。前面一篇博客介绍了现象结构的处理方法,那么在这个基础之上我们是不是添加一些属性形成一种新的数据结构类型呢?答案是肯定的,队列便是其中的一种。    队列的性质很简单:    (1)队列有头部和尾部    (2)队列从尾部压入数据    (3)队列从头部弹出数据    那么连续内存下的队列是怎么

2011-11-27 21:43:41 646

原创 链表排序

相比较线性表的排序而言,链表排序的内容稍微麻烦一点。一方面,你要考虑数据插入的步骤;另外一方面你也要对指针有所顾虑。要是有一步的内容错了,那么操作系统会马上给你弹出一个exception。就链表的特殊性而言,适合于链表的排序有哪些呢?    (1)插入排序    (适合)    (2)冒泡排序    (适合)    (3)希尔排序    (适合)    (4)选择排序    (适合

2011-11-27 21:40:06 9594 1

原创 非递归排序

在上面一篇博客当中,我们发现普通查找和排序查找的性能差别很大。作为一个100万的数据,如果使用普通的查找方法,那么每一个数据查找平均下来就要几十万次,那么二分法的查找呢,20多次就可以搞定。这中间的差别是非常明显的。既然排序有这么好的效果,那么这篇博客中,我们就对排序算做一个总结。    按照我个人的理解,排序可以分为两种:一种是非递归排序,它主要按照非递归的方法对数据进行排序,也就是说主要数

2011-11-27 21:37:20 465

原创 非递归排序

在上面一篇博客当中,我们发现普通查找和排序查找的性能差别很大。作为一个100万的数据,如果使用普通的查找方法,那么每一个数据查找平均下来就要几十万次,那么二分法的查找呢,20多次就可以搞定。这中间的差别是非常明显的。既然排序有这么好的效果,那么这篇博客中,我们就对排序算做一个总结。    按照我个人的理解,排序可以分为两种:一种是非递归排序,它主要按照非递归的方法对数据进行排序,也就是说主要数

2011-11-27 21:34:29 229

原创 冒泡排序

在上面一篇博客当中,我们发现普通查找和排序查找的性能差别很大。作为一个100万的数据,如果使用普通的查找方法,那么每一个数据查找平均下来就要几十万次,那么二分法的查找呢,20多次就可以搞定。这中间的差别是非常明显的。既然排序有这么好的效果,那么这篇博客中,我们就对排序算做一个总结。    按照我个人的理解,排序可以分为两种:一种是非递归排序,它主要按照非递归的方法对数据进行排序,也就是说主要数

2011-11-27 21:31:17 260

原创 基数排序

基数排序是另外一种比较有特色的排序方式,它是怎么排序的呢?我们可以按照下面的一组数字做出说明:12、 104、 13、 7、 9    (1)按个位数排序是12、13、104、7、9    (2)再根据十位排序104、7、9、12、13    (3)再根据百位排序7、9、12、13、104    这里注意,如果在某一位的数字相同,那么排序结果要根据上一轮的数组确定,举个例子来说:0

2011-11-27 21:28:53 281

原创 选择排序

选择排序是和冒泡排序差不多的一种排序。和冒泡排序交换相连数据不一样的是,选择排序只有在确定了最小的数据之后,才会发生交换。怎么交换呢?我们可以以下面一组数据作为测试:    2, 1, 5, 4, 9    第一次排序:1, 2, 5, 4, 9   第二次排序: 1, 2, 5, 4, 9    第三次排序: 1, 2, 4, 5, 9    第四次排序: 1, 2, 4,

2011-11-27 21:25:09 181

VRML2.0交互式三维图形编程

VRML2.0交互式三维图形编程VRML2.0交互式三维图形编程

2010-04-16

c#学习从入门到精通

目录 1编程语言 2运行环境 3编写第一应用程序 4 5 6 7

2008-09-27

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除