毕业设计-计算机网络课设论文简单的端口扫描器.doc
《毕业设计-计算机网络课设论文简单的端口扫描器.doc》由会员分享,可在线阅读,更多相关《毕业设计-计算机网络课设论文简单的端口扫描器.doc(24页珍藏版)》请在咨信网上搜索。
《计算机网络》课程设计说明书 题 目: 简单的端口扫描器 学 院: 计算机与信息安全学院 专 业: 信息管理与信息系统 学生姓名: 廖伟兴 学 号: 1200340124 指导教师: 杨兵 题目类型: 理论研究 实验研究 工程设计 工程技术研究 软件开发 2015年03月26日 摘要 计算机信息网络的发展加速了信息化时代的进程,但是随着社会网络化程度的增加,对计算机网络的依赖也越来越大,网络安全问题也日益明显。端口扫描技术是发现安全问题的重要手段之一。 本程序是在Windows系统中使用JAVA语言完成的一个端口扫描程序。此程序主要完成了TCPconnect()扫描功能。TCP扫描支持多线程,能对单个指定的主机进行扫描或对指定网段内的主机进行逐个扫描。能扫描特定的部分端口号或对指定的端口段内的端口进行逐个扫描。此端口扫描程序能快速地进行TCP扫描,准确地检测出对TCP协议开放的端口。 关键词:端口扫描TCP扫描TCP多线程扫描 目录 摘要 2 目录 3 1. 前言 1 2. 需求分析 1 2.1. 课题背景 1 2.2. 本课题研究意义 2 2.3. 安全扫描技术的产生及其发展趋势 2 3. 端口扫描的相关知识 3 3.1. 网络端口扫描原理 3 3.2. 端口 3 3.3. 相关协议 4 3.3.1. TCP数据包结构 4 3.3.2. TCP/IP遵循的原则 5 3.3.3. TCP三次握手过程 5 3.4. 扫描的定义 6 3.5. 多线程技术 6 4. 概要设计 6 4.1. 整体设计框架 6 4.2. 流程图描述 8 5. 详细设计 8 5.1. 开发环境 8 5.2. 界面设计 9 5.3. 主要类说明 9 5.4. 部分关键代码描述 10 5.4.1. 基本信息检测模块 10 5.4.2. 参数设计模块 11 5.4.3. 端口扫描模块 17 6. 系统测试 18 6.1. 系统主界面 18 6.2. 子系统功能测试 19 7. 总结 22 参考文献 23 桂林电子科技大学课程设计(论文)报告用纸 第 21 页 共 21 页 1. 前言 网络中的每一台计算机如同一座城堡,在这些城堡中,有的对外完全开放,有的却是紧锁城门。入侵者们是如何找到,并打开它们的城门的呢?这些城门究竟通向城堡的何处呢?在网络技术中,把这些城堡的“城门”称之为计算机的“端口”。端口扫描是入侵者搜集信息的几种常用手法之一,也正是这一过程最容易使入侵者暴露自己的身份和意图。一般来说,扫描端口有如下目的: 判断目标主机上开放了哪些服务;判断目标主机的操作系统; 如果入侵者掌握了目标主机开放了哪些服务,运行何种操作系统,他们就能够使用相应的手段实现入侵,本课程设计将会通过用JAVA语言实现一个小的端口扫描软件,详细描述端口扫描的原理,分析端口扫描所涉及的问题,以便更加清楚地了解入侵者如何扫描目标主机的端口,同时掌握如何确保本机的安全性,为将来设计更为安全的系统打下牢固基础。 2. 需求分析 2.1. 课题背景 在21世纪的今天,计算机发展日新月异,伴随着网络技术的飞速更新,网络规模迅速增长和计算机系统的日益复杂,导致新的系统漏洞层出不穷,一些别有用心的人或者木马程序要想顺利的渗透一台联网的计算机,无论使用何种技术,首先必然要寻找计算机的漏洞来为自己的入侵打开大门。端口扫描器是一把双刃剑,端口扫描器的产生可以使网络中的计算机及时的发现主机的开放与未开放的端口状态。计算机的端口扫描技术是一种基于主动防御型的策略的重要技术手段。本课题通过对计算机端口扫描器的研究来提高对网络中计算机的安全的认识。本端口扫描器采用Java语言和JavaSocket编程原理开发。扫描主机通过TCP/IP协议的三次握手与目标主机的指定端口建立一次完整的连接,如果目标主机的此端口在规定时间内有回复,则说明该端口是开放的。利用多线程技术实现了对一目标IP进行设定数目的端口扫描。这种扫描器可以在输入IP的情况下,对指定的端口范围进行扫描。 2.2. 本课题研究意义 现代社会是信息化网络化的社会,信息是社会发展的重要资源。信息安全的保障能力是一个国家的综合国力经济竞争实力和生存能力的重要组成部分,是世界各国在奋力攀登的制高点。网络安全是指网络系统的硬件软件及其系统中的数据受到保护,不会因为偶然的或者恶意的原因而遭到破坏、更改、泄漏,系统连续可靠的正常的运行。网络安全包括技术领域和非技术领域两大部分:非技术领域包括一些制度政策管理安全意识是填权等方面的内容;技术领域包括:隐患扫描、防火墙、入侵检测、访问控制、虚拟专用网、CA认证、操作系统等方面的内容。这些技术的目标是保证信息的可控性、可用性、保密性、完整性和不可抵赖性。 2.3. 安全扫描技术的产生及其发展趋势 随着Internet的不断发展,信息安全技术已经成为促进经济发展、社会进步的巨大推动了。端口扫描技术是网络安全扫描技术的一个重要的网络安全技术,与防火墙、入侵检测系统相互配合,能够有效地提高网络安全性。安全扫描是安全技术领域中的重要的一类。通过扫描能自动检测远程或者本地的主机系统的信息,包括主机的基本信息(如计算机名、域名、组名、操作系统类型号等)、服务信息、用户信息以及漏洞信息,它的重要性在于能够对网络进行安全评估,及时发现安全隐患,防患于未然。任何技术的诞生都有深刻的思想基础,人们在对“安全”认识逐步深化的过程中,不断地提出新的安全理论并付诸实践。在这个认识的过程中有两次重大的飞跃:第一次飞跃式早在二十世纪八十年代,人们认为信息安全就是信息的保密性,相应的采取保障措施就是利用加密机制和基于计算机规则的访问控制。这个时期防火墙和入侵检测系统(IDS)进一步发展起来,并在保护内部网络中起到了积极作用。DanFame和WeitseVenema提出了划时代的隐患扫描思想,既然黑客可以查找系统的漏洞,并且针对这些漏洞对系统进行攻击,那么隐患扫描程序就可以采取与黑客相同的方法找到系统漏洞,并且将他们加以修复,起到主动防御的作用。第二次飞跃就是在被动防护的基础上,提出了主动防御的思想。这就促进了安全扫描的技术的诞生。安全扫描的主动防御思想渗透到了许多其他的安全领域。安全扫描软件从最初的专门为UNIX系统编写的一些只具有简单的功能的小程序,发展到现在,已经成为可以用在多个系统的具有复杂的功能的商业程序。今后的发展趋势,我认为有以下几点:使用插件或者叫做功能模块技术。每个插件都封装一个或多个漏洞测试手段,主扫描程序通过代用插件的方法来执行扫描。仅仅是添加新的插件就可以使软件增加新功能,扫描更多漏洞。在插件编写的规范公布的情况下,用户或者第三方公司甚至可以编写自己的插件来扩充软件的功能。同时这种技术使软件的升级维护都变得相对轻松,并且具有非常强的扩展性。由安全扫描程序到安全评估专家系统。最早的安全扫描程序只是简单的把各个扫描测试项目执行结果罗列出来,直接提供给测试者而不对信息进行任何分析处理。而当前较为成熟的扫描系统都能够将单个主机的扫描结果进行整理,形成报表能够并对具体漏洞提出一些解决方法,但对网络的状况缺乏一个整体的评估,对网络安全没有系统的解决方案。未来的安全扫描系统,应该不但能够扫描安全漏洞,还能够智能化的协助网络信息管理人员评估本网络的安全状况,给出安全建议,成为安全评估专家的系统。 3. 端口扫描的相关知识 3.1. 网络端口扫描原理 每个端口就是一个潜在的通信信道,也就是一个入侵通道。对目标计算机进行端口扫描,能得到许多有用的信息。进行扫描的方法很多,可以使手工进行扫描,也可以是端口扫描软件进行。在手工进行扫描时,需要熟悉各种命令。命令执行后的输出进行分析。用扫描软件进行扫描时,许多扫描软件都有分析数据功能。通过端口扫描,可以得到许多有用的信息,从而发现系统的安全漏洞。扫描器是一种自动检测远程或本地主机安全性软弱点的程序,通过使用扫描器你可以留痕迹的发现远程服务器的各种TCP端口的分配及提供的服务和他们的软件版本,这就能让我们间接的或直观的了解到远程主机所存在的安全问题。扫描器通过选用远程TCP/IP不同的端口的服务,并记录目标给予的回答,通过这种方法,可以搜集到很多关于目标主机的各种有用的信息(比如:是否能用匿名登陆、是否有可写的FTP目录、是否能用TELNET,HTTPD是用ROOT还是nobady在跑!)。扫描并不是一个直接的攻击网络漏洞的程序,它仅仅能帮助我们发现目标机的某些内在的弱点。一个好的扫描器能对它得到的数据进行分析,帮助我们查找目标主机的漏洞。但它不会提供进入一个系统的详细步骤。 3.2. 端口 协议端口是一种抽象,其行为类似于TCP/IP连接的逻辑端点。在TCP协议中,仅仅用连接双方的IP地址来标识一条连接显然是不够的。在多任务操作系统中,系统允许多个进程同时使用TCP协议进行通信,因此必须能够区分这些不同的进程所对应的不同连接。端口可以区分这些不同的通信进程。每个端口由一个正整数识别,称为端口号。信息传送中每个信息都载有一个用来接收目的端口号和回复应该发往的源端口号。“公开端口”是由InternetAssignedNumbersAuthority(IANA)分配的,并且只能被系统(或root)进程或者被授予权利的用户执行的程序使用。根据提供服务类型的不同,端口分为两种,一种是TCP端口,一种是UDP端口。计算机之间相互通信的时候,分为两种方式:一种是发送信息以后,可以确认信息是否到达,也就是有应答的方式,这种方式大多采用TCP协议;一种是发送以后不去确认信息是否到达,这种方式大多采用UDP协议。对应这两种协议的服务提供的端口,也就分为TCP端口和UDP端口。当可能时,对应的TCP和UDP服务被分配给相同的编号。 1) 公开端口:0--1023 2) 注册端口:1024--49151 3) 动态或私有端口:49152—65535 3.3. 相关协议 TCP/IP协议栈是网络扫描技术的基础,最基本的扫描方式TCPConnect()就是利用了TCP协议;而当前流行的端口扫描技术如SYN扫描(半打开扫描)、FIN扫描和NULL扫描等等,都是利用了TCP的三次握手来完成的。 3.3.1. TCP数据包结构 一个TCP数据包包括一个TCP头,后面是选项和数据。它的格式如图1。 3.3.2. TCP/IP遵循的原则 1) 当一个SYN或者FIN数据包到达一个关闭的端口,TCP丢弃数据包,同时发送一个RST数据包。 2) 当一个RST数据包到达一个监听端口,RST被丢弃。3.当一个RST数据包到达一个关闭的端口,RST被丢弃。 3) 当一个不包含ACK的数据包到达一个监听端口时,数据包被丢弃,同时发送一个RST数据包。 4) 当一个SYN关闭的数据包到达一个监听端口时,数据包被丢弃。 5) 当一个SYN数据包到达一个监听端口时,正常的三次握手继续,回答一个SYN|ACK数据包。 6) 当一个FIN数据包到达一个监听端口时,数据包被丢弃。“FIN行为”(关闭的端口返回RST,监听端口丢弃包),所有的URG、PSH和FIN,或者没有任何标记的TCP数据包都会引起“FIN行为”。 3.3.3. TCP三次握手过程 3.4. 扫描的定义 扫描程序(Scanner)是自动检测远端主机或者本地主机安全脆弱性的程序。通过使用扫描程序一个用户可以发现远程服务器的安全弱点。目前,绝大多数操作系统都支持TCP/IP协议簇,扫描程序查询TCP/IP端口并记录目标机器的响应。扫描程序通过确定下列项目收集目标主机的有用信息: 当前主机正在进行什么服务? 哪些用户拥有这些服务? 是否支持匿名登录? 是否有某些网络服务需要鉴别? 3.5. 多线程技术 每个正在系统上运行的程序都是一个进程。每个进程包含一到多个线程。进程也可能是整个程序或者是部分程序的动态执行。线程是一组指令的集合,或者是程序的特殊段,它可以在程序里独立执行。也可以把它理解为代码运行的上下文。所以线程基本上是轻量级的进程,它负责在单个程序里执行多任务。通常由操作系统负责多个线程的调度和执行。 (1)什么是多线程? 多线程是为了使得多个线程并行的工作以完成多项任务,以提高系统的效率。线程是在同一时间需要完成多项任务的时候被实现的。 (2)使用线程的好处有以下几点: 1) 使用线程可以把占据长时间的程序中的任务放到后台去处理 2) 用户界面可以更加吸引人,这样比如用户点击了一个按钮去触发某些事件的处理,可以弹出一个进度条来显示处理的进度 3) 程序的运行速度可能加快 4) 在一些等待的任务实现上如用户输入、文件读写和网络收发数据等,线程就比较有用了。在这种情况下我们可以释放一些珍贵的资源如内存占用等等。 4. 概要设计 4.1. 整体设计框架 经过大量的分析与调研,进而设计出由以下几个模块组成的简单端口扫描器。整个端口扫描器的核心部分是扫描模块,它是由很多子模块组成的,其结构如下图所示 程序结构图 4.2. 流程图描述 程序流程图 5. 详细设计 5.1. 开发环境 本端口扫描器在JavaEclipse下开发 5.2. 界面设计 AWT是Swing的基础。AWT设计的初衷是支持开发小应用程序的简单用户界面。但是AWT缺少剪贴板、打印支持、键盘导航等特性,而且原来的AWT甚至不包括弹出式菜单或滚动窗格等基本元素。Swing的产生主要原因就是AWT不能满足图形化用户界面发展的需要。Swing组件几乎都是轻量组件,与重量组件相比,没有本地的对等组件,不像重量组件要在它们自己的本地不透明窗体中绘制,轻量组件在它们的重量组件的窗口中绘制。本次课程设计利用了AWT和swing结合起来做个简单的界面设计,其导入语句为: Importjava.awt.*; Importjava.awt.event.*; Importjavax.swing.*; 具体函数说明为: JtextArea Result():定义显示所有开放扫描端口区域的大小; JtextArea ResultAll():定义显示所有扫描端口区域的大小; JtextField hostname():定义主机名 JtextField minPort():定义最小端口 JtextField maxPort():定义最大端口 JTextField maxThread():定义最大线程数 JdialogDL GError():定义错误提示标签 JlabelDL GINFO():定义错误提示信息 Jlabel type():定义状态表示 Jbutton OK():定义确定按钮 Jbutton Submit():定义开始扫描按钮 Jbutton Stop():定义停止扫描按钮 Jbutton Cancel():定义退出按钮 5.3. 主要类说明 ClassTCPThreadextendsThread:利用多线程的方法来实现TCP端口扫描,其中:利用调用run()方法进行多线程的运行,逐次扫描得出对应的TCP端口号。还应用了网络编程套接字进行客服端和服务器端的模拟,用输入输出流进行信息的交换。 Class CancleAction implements ActionListener:事件监听器,对应Cancle按钮 classStopActionimplementsActionListener:事件监听器,对应Stop按钮 ClassSubmitActionimplementsActionListener:事件监听器,对应Submit按钮。主要利用java的异常处理机制进行相应信息的匹配 ClassOkActionimplementsActionListener:事件监听器,对应OK按钮 PublicclassPortScan:主要进行界面化设计,调用上面的事件相应。 5.4. 部分关键代码描述 5.4.1. 基本信息检测模块 publicclassTCPThreadextendsThread{ publicstaticInetAddresshostAddress; //最小的端口号 publicstaticintMIN_port; //最大的端口号 publicstaticintMAX_port; //线程总数 privateintthreadnum; //查询方式:0为ip;1为主机名 publicstaticinttype; //端口的类别 Stringporttype="0"; //ip地址前3位 publicstaticintip1; //ip地址4~6位 publicstaticintip2; //ip地址7~9位 publicstaticintip3; //起始ip地址的最后4位 publicstaticintipstart; //结束ip地址的最后4位 publicstaticintipend; //完整的ip地址 publicstaticStringipAll; //扫描的主机名称或ip Stringhostname=""; /* *构造函数 */ publicTCPThread(Stringname,intthreadnum){ super(name); this.threadnum=threadnum; } 5.4.2. 参数设计模块 //判断ip的前3位是否为int型 try { ip1=Integer.parseInt(PortScan.fromip1.getText()); } catch(NumberFormatExceptione){ PortScan.DLGINFO.setText("错误的ip!"); PortScan.DLGError.setVisible(true); PortScan.Submit.setEnabled(true);//设置开始扫描按钮可用。 return; } //判断起始ip是否正确 //判断条件:大于0且小于等于255 if(ip1<0||ip1>255||ip2<0||ip2>255||ip3<0||ip3>255||ipstart<0||ipstart>255) { PortScan.DLGINFO.setText("ip地址为0-255的整数!"); PortScan.DLGError.setVisible(true); PortScan.Submit.setEnabled(true);//设置开始扫描按钮可用。 return; } else { Stringip=""+ip1+"."+ip2+"."+ip3+"."+ipstart; //判断IP地址的有效性 try { TCPThread.hostAddress=InetAddress.getByName(ip); } catch(UnknownHostExceptione) { PortScan.DLGINFO.setText("错误的IP或地址不可达!"); PortScan.DLGError.setVisible(true); PortScan.Submit.setEnabled(true);//设置开始扫描按钮可用。 return; } } } *判断主机名称的有效性 */ try { TCPThread.hostAddress=InetAddress.getByName(PortScan.hostname.getText()); } catch(UnknownHostExceptione) { PortScan.DLGINFO.setText("错误的域名或地址不可达!"); PortScan.DLGError.setVisible(true); PortScan.Submit.setEnabled(true);//设置开始扫描按钮可用。 return; } } /* *判断端口号的有效性 */ try { minPort=Integer.parseInt(PortScan.minPort.getText()); maxPort=Integer.parseInt(PortScan.maxPort.getText()); maxThread=Integer.parseInt(PortScan.maxThread.getText()); } catch(NumberFormatExceptione) { PortScan.DLGINFO.setText("错误的端口号或线程数!端口号和线程数必须为整数!"); PortScan.DLGError.setVisible(true); PortScan.Submit.setEnabled(true);//设置开始扫描按钮可用。 return; } /* *判断最小端口号的有效范围 *判断条件:大于0且小于65535,最大端口应大于最小端口 */ if(minPort<0||minPort>65535||minPort>maxPort) { PortScan.DLGINFO.setText("最小端口必须是0-65535并且小于最大端口的整数!"); PortScan.DLGError.setVisible(true); PortScan.Submit.setEnabled(true);//设置开始扫描按钮可用。 return; } else { TCPThread.MIN_port=minPort; } /* *判断最大端口号的有效范围 *判断条件:大于0且小于65535,最大端口应大于最小端口 */ if(maxPort<0||maxPort>65535||maxPort<minPort) { PortScan.DLGINFO.setText("最大端口必须是0-65535并且大于最小端口的整数!"); PortScan.DLGError.setVisible(true); PortScan.Submit.setEnabled(true);//设置开始扫描按钮可用。 return; } else { TCPThread.MAX_port=maxPort; } /* *判断线程数量的有效范围 *判断条件:大于1且小于200 */ if(maxThread<1||maxThread>200) { PortScan.DLGINFO.setText("线程数为1-200的整数!"); PortScan.DLGError.setVisible(true); PortScan.Submit.setEnabled(true);//设置开始扫描按钮可用。 return; } PortScan.Result.append("线程数"+PortScan.maxThread.getText()+"\n"); //启动线程 for(inti=0;i<maxThread;i++) { newTCPThread("T"+i,i).start(); } } } 5.4.3. 端口扫描模块 Public void run(){ //ip地址 // inth=0; //端口号 inti=0; SockettheTCPsocket; for(i=MIN_port+threadnum;i<MAX_port+Integer.parseInt(PortScan.maxThread.getText())&&PortScan.StopFlag;i+=Integer.parseInt(PortScan.maxThread.getText())) { try{ theTCPsocket=newSocket(hostAddress,i); theTCPsocket.close(); } catch(IOExceptione){ synchronized(PortScan.ResultAll){ PortScan.ResultAll.append(""+i); PortScan.ResultAll.append(":Closed"+"\n"); } } 6. 系统测试 6.1. 系统主界面 利用java的awt,swing做界面,界面相对比较简单。主要显示的信息包括:程序名字,端口范围,线程数,IP地址等基本信息。输入相关的信息,就可以开始扫描。 6.2. 子系统功能测试 当输入错误的ip时,提示错误信息“错误的ip” 当输入的ip范围不在所规定的范围内,提出错误信息“ip地址为0-255的整数” 当输入错误的端口号时,提示错误信息“端口号或线程数错误!端口号和线程数必须为整数!” 当输入的端口范围不在所规定的范围内,提出错误信息“端口需界于0-65535并且大于最小端口的整数! 当输入的线程数范围不在所规定的范围内,提出错误信息“线程数位1-200的整数!” 通过侦测本主机的IP地址,检测得到了相应的端口,通过这些端口,我们可以适量的做安全评估和安全防御。 7. 总结 本次课程设计我选的课题是编写一个简单的端口扫描程序,该课题使用socket和网络编程方法进行编写,且该程序可扫描局域网的某计算机开放了哪些端口。因此我选择使用Java语言进行编写,并且在该环境下以我所住的宿舍的网络作为局域网进行测试。经过这两个星期的课程设计,通过图书馆和网上查找资料,顺利完成了设计和开发,端口扫描系统开发完毕。系统基本符合要求,但还存在以下几个小问题: 1、由于对Java的GUI编程不太熟悉,所以程序的界面设计得不够完美。 2、扫描状态的输出函数的速度跟不上端口扫描的速度,最后程序扫描结束时,扫描状态函数还在继续运行,程序运行无法达到一致性。 由于时间比较匆促,这两个问题还没解决出来,这也是本次课程设计结束后还需继续完善的。 在整个设计过程中,出现过很多的问题,得到了老师和同学的帮助,在不断学习的过程中我体会到: 1、这次课程设计是一个不断学习的过程,从设计初的模糊认识到最后能够顺利完成,我体会到在实践中学习的重要性。 2、由于开始时对系统缺乏整体认识,不具备软件开发思想,对系统的功能需求分析的要求认识不够清楚,使得后续的工作不得不经常返回去修改数据表和个别代码。使我体会到在设计中的每一步的重要性,如果上一个步骤不能很好的完成,在后续的设计将会付出几倍的代价。深刻体会软件工程的重要性。 3、在设计过程中,遇到很多困难,我学会通过别人的代码理解语言的含义但这并不是抄袭,然后根据自己的设计要求编写代码。 4、设计过程中,由于要实现某些功能,网上资源解决了我的问题。多借鉴网络资源也是学好软件编程一个不错的方法,但自己要有创新。 总之,通过这次课程设计,我深刻体会到要做好一个完整的系统,需要有系统的思维方式和方法,对待一个新的问题,要耐心、要善于运用已有的资源来充实自己。同时我也深刻的认识到,在对待一个新事物时,一定要从整体考虑,完成一步之后再作下一步,这样对于系统而言才能更加有效。就比如说在这次的设计,我不但对java有了深刻的认识,积累了使用软件工程的思想来开发软件的经验,同时最重要的是摸索出了一套考虑问题和解决问题的方法,这对于我以后的学习和工作受益匪浅。 参考文献 [1]谢希仁.计算计网络(第5版)[M].北京:电子工业出版社,2008 [2]杨静宇,李千目,王国全等.Java程序设计与应用开发(第2版)[M].北京:清华大学出版社,2009- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业设计 计算机网络 论文 简单 端口 扫描器
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文