




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于互联网网站的安全开发规范主 要 内 容1前言71.1目的71.2主要参考文档72常见WEB安全威胁介绍72.1跨站脚本漏洞(XSS)9漏洞说明9漏洞危害10处理说明10示例112.2注入漏洞12漏洞说明12漏洞危害12处理说明12示例122.3HTTP消息头注入13漏洞说明13漏洞危害13处理说明13示例132.4重定向漏洞14漏洞说明14漏洞危害15处理说明15示例152.5请求伪造(OSRF/CSRF)15漏洞说明15漏洞危害16处理说明16示例172.6文件上传漏洞17漏洞说明17漏洞危害17处理说明17示例182.7不安全的直接对象引用18漏洞说明18漏洞危害18处理说明18示例1
2、82.8信息泄漏及不正确的错误操作19漏洞说明19漏洞危害19处理说明19示例192.9失效证证及会话管理20漏洞说明20漏洞危害20处理说明20示例212.10不安全的信息存储及通信21漏洞说明21漏洞危害21处理说明21示例212.11限制URL访问失效22漏洞说明22漏洞危害22处理说明22示例222.12特殊字符的HTML转换22漏洞说明22漏洞危害22处理说明23示例232.13缓冲区溢出23漏洞说明23漏洞危害23处理说明23示例233安全开发规范233.1用户登录处理243.2会话安全243.3用户输入检查及过滤253.4界面输出273.5页面重定向273.6错误信息处理273.
3、7对象访问权限283.8上传内容检查283.9敏感信息处理283.10密码储存及使用283.11数据库执行脚本293.12系统调用293.13WEB服务器配置29前言目的本文档通过介绍目前Web应用中的常见漏洞及危害,并收集相关的漏洞防范手段,旨在让部门开发人员提高WEB应用安全意识,并通过安全规范,明确开发人员编码的基本安全要求,提高WEB应用系统的安全性。另外,现在的网络攻击技术新、变化快,本规范需要部门全体人员不断的补充、完善。同时,安全开发规范中涉及的要求,也作为测试的一个内容及依据。主要参考文档黑客攻防技术宝典web实战篇常见WEB安全威胁介绍常见的对于WEB应用的威胁有以下几种:W
4、eb应用安全威胁种类威胁实施途径导致结果Code Scanning (Server/Client)源代码扫描(服务端/客户端)Browsing source code浏览源代码Learn Vulnerabilities收集信息,了解目标弱点Cookie PoisoningCookie 中毒Changing cookie content改变cookie内容User Impersonation扮演成为其他用户身份Hidden Manipulation隐藏域值篡改Changing hidden HTML fields value 改变HTML隐藏域值eShoplifting 电子商品偷窃Forcef
5、ul Site Browsing强行浏览Use URL address line使用URL地址行Access sensitive data访问敏感数据Third Party Misconfigurations第三方误配置Default or improper software configuration 缺省或者不正确的软件配置Access OS or data访问OS或者数据Identified(Known) Vulnerabilities已知漏洞Published vendor bugs已公布的厂商软件漏洞Access OS,Crash server/app/DB,access sensi
6、tive data访问OS或者敏感数据,甚至捣毁服务器/应用程序/数据库Buffer Overflow缓冲区溢出Overflow field input 溢出输入域Access sensitive data,Or crash site/application访问敏感数据或者捣毁站点/应用程序Debug Options&Backdoors调试选项&后门程序Change code setting改变通用代码设置Access code/application asDeveloper or admin以开发者或者管理员身份访问代码/应用程序Parameter Tampering
7、0;Server/Client参数篡改(服务端/客户端)Removal or alteration ofexpected parameter fields更改处理程序所期望得到的参数域值Access OS or sensitive data访问OS或者敏感数据Stealth Commanding隐蔽指令执行Use Meta code使用命令夹带/附加执行模式Access Os or control Application at OS level访问OS或者在OS级别控制应用程序Cross Site Scripting跨站脚本Use URL Meta code to insert Trojan
8、code 利用URL夹带/附加执行脚本模式嵌入特罗伊代码Server-side exploitation,Access sensitive data访问服务端敏感数据或者威胁客户本地安全Application DoS应用层拒绝服务Invalid data input不可法数据输入Crash server/application捣毁服务器/应用程序跨站脚本漏洞(XSS)漏洞说明XSS又叫CSS (Cross Site Script) ,跨站脚本攻击,指当应用程序提取用户提供的数据并发送到Web浏览器,数据内容没有先经过验证或编码时(如:在require的输入参数中增加javascri
9、pt脚本、HTML代码),当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意用户的特殊目的。XSS允许攻击者在受害者的浏览器上执行脚本,脚本可能会劫持用户会话、破坏Web站点或引入蠕虫等。XSS属于被动式的攻击,因为其被动且不好利用,所以许多人常呼略其危害性。跨站脚本漏洞的种类、方式也有多种如反射型、保存型、链接型等,跨站脚本也是目前最普遍的Web漏洞。漏洞危害虽然此漏洞不会直接影响WEB网站,但攻击者通常会在有漏洞的程序中插入 JavaScript、VBScript、 ActiveX或Flash以欺骗用户可通过恶意欺骗/钓鱼攻击模式诱导正常用户访问恶意URL实现盗取/
10、污染cookie、Xss蠕虫/挂偿偿马、盗取用户帐户、修改用户设置、做虚假广告等,攻击步骤:HTML注入,劫持用户的浏览器,如:注入一个JavaScript弹出式的警告框:a_lert(1);做坏事:如果您觉得警告框还不够刺激,当受害者点击了一个被注入了HTML代码的页面链接时攻击者能作的各种的恶意事情:如获取用户Cookie/Session等敏感信息、篡改用户资料; 处理说明用户可控制的数据未经适当确认与净化就被复制到应用程序响应中,这是造成漏洞的根本原因,因此需要对用户输入、输出的请求数据进行过滤处理:对动态生成的页面的字符进行编码;验证所有输入数据,有效检测攻击,某个数据被接受为可被显示
11、或存储之前,使用标准输入验证机制,验证所有输入数据的长度、类型、语法、敏感字符(% < > ; & + - " '( )并进行相应的转义等。如:在request输入参数取出时通过过滤器或者各页面先判断参数中是否含有”<script”开头的数据,如果有,直接过滤掉或转到错误页面;但仅仅查找或替换一些字符(如"<" ">"或类似"script"的关键字),很容易被XSS变种攻击绕过验证机制。往往我们只在客户端检验数据类型和有效性,但是非法用户可以通过工具以post或get传不符合规范
12、参数给我们指定的接受数据页面或服务,可能导致非法用户把错误和无效的信息和数据写入我们的数据库,因此在客户端校验的基础上还需要进行服务器端的数据校验。对上传文件名或上传文件格式进行严格验证、限制 对所有输出数据进行适当的编码,以防止任何已成功注入的脚本在浏览器端运行。示例例1:POST: msg=%25E5%259B%25BE%25E5%25BD%25A2%25E9%25AA%258C%25E8%25AF%2581%25E7%25A0%2581%25E8%25BE%2593%25E5%2585%25A5%25E9%2594%2599%25E8%25AF%25AF.</textarea>
13、;<script>alert(55219)</script>例2:某论坛对上传文件名没有做严格的限制,可以用作为文件名上传文件。这样,黑客可以用脚本的形式上传文件,其它用户一旦浏览贴子,就会执行其中的脚本文件。比如当黑客用以下脚本作为文件名上传到论坛:当用户浏览贴子时,用户浏览器将自动执行上的xss.js脚本。xss.js脚本可能是木马或病毒文件,对用户电脑中数据进行窃取或破坏。 注入漏洞漏洞说明注入漏洞,特别是SQL注入,就是通过将SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达攻击者的恶意数据欺骗翻译器执行非用户本意的命令或改变数据。致SQL注
14、入攻击的漏洞并非系统造成的,主要是程序员在编程中忽略了安全因素,它的原理并不复杂,如:后台数据库允许动态SQL语句的执行,前台应用程序没有对用户输入的数据或者页面提交的信息(如POST,GET)进行必要的安全检查,就会造成SQL的注入威胁。漏洞危害非法查询其它数据库资源,获得数据库一些相关信息。处理说明尽量使用预编译(prepareStatement)来执行数据库、设置参数值,并且SQL语句中不出现参数。示例如查询页面根据而后台查询语句是select * from 表名 where 字段 = XXXX尽量使用select * from 表名 where 字段 = ?或:param_name来预
15、编译;否则非法用户可以输入 or 1=1来实现注入获取信息。HTTP消息头注入漏洞说明包括:注入cookie、传送其它攻击、HTTP响应分割,如果用户控制的数据以不安全的方式插入到应用程序返回的HTTP消息头中,就会出现HTTP消息头注入漏洞。如果攻击者能够在他控制的消息头中注入换行符(输入参数中增加%0d%0a),他就能在响应中插入其他HTTP消息头,并在响应主体中写入任意内容。漏洞危害可能会通过 Web 高速缓存投毒损坏站点内容,可能会窃取或操纵客户会话和 cookie,它们可能用于模仿合法用户,从而使黑客能够以该用户身份查看或变更用户记录以及执行事务。处理说明1)在require如果是g
16、et方式传送参数的, 判断getQueryString()返回数据中是否含有%0d或%0a; 如果有,直接过滤掉或转到错误页面2) 在require如果是post方式传送参数的,在获得数据后如果要根据require的参数重组一个url进行跳转个面时先要将字符串用URLEncoder.encode()进行编码。示例这种漏洞最常见于Location与Set-Cookie消息头中,但也会出现在其他HTTP消息头中。应用程序提取用户提交的输入,并将它插入到响应码为3xx的Location消息头中。同样,一些应用程序提取用户提交的输入,把它插入一个 cookie 值中。在上述任何一种情况下,攻击者都可以
17、使用回车符(0x0d)或换行符(0x0a)构造一个专门设计的请求,在他们控制的消息头中注入一个换行符,从而在下面的行中注入其他数据。例:URL:参数:staff_id, verify_code, password_code测试值:Foobar%3f%0d%0aAppScanHeader:%20AppScanValue%2f1%2e2%2d3%0d%0aSecondAppScanHeader:%20whatever以下更改已应用到原始请求:重定向漏洞漏洞说明应用程序提取用户可控制的输入,并使用这个数据执行一个重定向,指示用户的浏览器访问一个不同于用户要求的URL,那么就会造成重定向漏洞。漏洞危害
18、攻击者主要利用重定向漏洞实施钓鱼攻击,诱使受害者访问一个欺骗性Web站点并输入敏感信息。处理说明绝不将用户提交的数据合并到重定向目标中是避免重定向漏洞的最有效方法;从应用程序中删除重定向页面,用直接指向相关目标URL的链接替代指向重定向页面的链接;建立一个包含所有有效重定向URL的列表。不以参数的形式向重定向页面传送目标 URL,相反,传送这个列表的一个索引。重定向页面应在它的列表中查询这个索引,并返回一个指向相关URL的重定向。应用程序应在所有重定向中使用相对 URL,重定向页面应严格确认它收到的URL是一个相对URL。它应当确认:用户提交的URL或者以单独一个斜线字符、后接一个字母开头,或
19、者以一个字母开头,并且在第一个斜线前没有冒号。应拒绝而不是净化任何其他输入。示例一个常见的示例是,应用程序强制会话已经终止的用户返回登录页面,然后在用户重新成功通过验证后将他们重定向到最初的URL。如果遇到这种行为,就表明应用程序可能易于受到重定向攻击,因此,应当对这种行为进行深入分析,以确定它是否可被攻击者利用。请求伪造(OSRF/CSRF)漏洞说明这种类型的攻击也称为会话叠置与会话劫持攻击密切相关,在攻击过程中,攻击者截获一名用户的会话令牌,因而能够"作为"该用户使用应用程序。但是,通过请求伪造,攻击者根本不需要知道受害者的会话令牌而是利用Web浏览器的正常行为劫持一名
20、用户的令牌,通过它提出用户并不想提出的请求。 请求伪造漏洞分为两种类型:本站点请求伪造与跨站点请求伪造。本站点请求伪造(on-site request forgery,OSRF)是一种利用保存型XSS漏洞的常见攻击有效载荷。例如,在MySpace蠕虫中,Samy 在自己的用户资料中插入了一段脚本,致使任何查看它的用户在不知情的情况下执行各种操作。另外,即使在XSS漏洞并不存在的地方,保存型OSRF漏洞仍有可能存在,这一点常被人们忽视。CSRF是Cross Site Request Forgery的缩写(也缩写为XSRF),即跨站请求伪造,目前流行的 CSRF攻击主要是由攻击者在网页中植入恶意代
21、码或连接,当受害人的浏览器执行恶意代码或者受害人点击连接后,攻击者就可以访问那些被害人身份验证后的网络应用。如果被害人采用多窗口浏览器,攻击者就可以以被害人身份控制浏览器中任何一个窗口中的Web应用。漏洞危害HTTP会话劫持,攻击者强制受害者的浏览器执行一个对攻击者有利的恶意行为。一般网站是通过cookie来识别用户的,当用户成功进行身份验证之后浏览器就会得到一个标识其身份的cookie,只要不关闭浏览器或者退出登录,以后访问这个网站会带上这个cookie。如果这期间浏览器被人控制着请求了这个网站的url,可能就会执行一些用户不想做的功能(比如修改个人资料)。处理说明不要完全依赖于cookie
22、传送会话令牌,就可以防止XSRF攻击,如:电子银行这些最为注意安全的应用程序常常使用HTML表单中的隐藏字段传送会话令牌。当每次提交请求时,应用程序除确认会话 cookie 外,还核实表单是否传送了正确的令牌;通过要求用户完成几个步骤、以执行相关的敏感操作阻止 XSRF 攻击的防御措施,应用程序必须在多步骤处理过程中使用某种令牌且保证这个令牌的安全。如:在第一个阶段,应用程序在一个隐藏表单字段中放入一个令牌;在第二个阶段,它确认这个令牌是否被提交。由于XSRF攻击是单向性的,因此实施攻击的Web站点无法从第一个阶段获得令牌,然后在第二个阶段提交。示例如:比如要攻击一个存在问题的blog,那就先
23、去目标blog留言,留下一个网址,诱其主人点击过来,然后构造个HTML表单提交些数据过去。这时对于多窗口浏览器(firefox、遨游、MyIE)便捷的同时也带来了一些问题,因为多窗口浏览器新开的窗口是具有当前所有会话的。即我用IE登陆了我的Blog,然后我想看新闻了,又运行一个IE进程,这个时候两个IE窗口的会话是彼此独立的,从看新闻的IE发送请求到Blog不会有我登录的cookie;但是多窗口浏览器永远都只有一个进程,各窗口的会话是通用的,即看新闻的窗口发请求到Blog是会带上我在blog登录的cookie。想一想,当我们用鼠标在Blog/BBS/WebMail点击别人留下的链接的时候,说不
24、定一场精心准备的CSRF攻击正等着我们。文件上传漏洞漏洞说明利用当前WEB系统已有的上传功能,比如文件上传、图像上传等的漏洞来上传任意文件或者webshell。漏洞危害直接上传webshell到服务器,甚至获取服务器的root权限。处理说明后缀检查不严引起的上传任意文件,主要为jsp和war后缀文件,需要进行限制;采用白名单严格限制上传类型。示例无不安全的直接对象引用漏洞说明当开发人员把一个引用暴露给内部执行对象时,如一个文件、目录、数据库记录或键值、URL或格式参数,可能发生直接对象引用。攻击者可以操纵这些引用访问其它未经认证的对象,即指一个已经授权的用户,通过更改访问时的一个参数,从而访问
25、到了原本其并没有得到授权的对象。Web应用往往在生成Web页面时会用它的真实名字,且并不会对所有的目标对象访问时来检查用户权限,所以这就造成了不安全的对象直接引用的漏洞。漏洞危害攻击者可以操纵这些引用访问其它未经认证的对象。可能造成目录遍历漏洞。处理说明控制应用程序的访问权限;使用非直接的对象引用这防止了攻击者直接访问其并未授权的对象,通过一种mapping或是其他的方法让攻击者无法直接访问。 检查访问对每一个来自于不信任的源的直接对象引用都必须包含访问控制检查,从而确信该用户对该对象拥有访问权。示例如由于网站没有对URL地址栏中输入的内容进行有效的限制,攻击者可以在URL地址后加入
26、特殊的字符,如“./”,来对WEB站点中的实际对象,如文件、目录等进行查看,甚至可以对它们进行修改和删除。信息泄漏及不正确的错误操作漏洞说明WEB应用程序可能通过各类应用程序问题无意中泄漏其配置、内部动作情况或侵害机密数据的信息。WEB应用程序还会通过不正当的错误信息处理,将站点内部组成结构及服务器、数据库类型泄漏给攻击者。如果WEB站点开发人员不对这些方面进行通用信息处理,就有可能存在这个漏洞。漏洞危害攻击者利用这个弱点偷窃敏感数据或传入更多严重的攻击。可能造成目录遍历漏洞。处理说明url地址参数使用get方式传送时,有时我们一般会使用一些有意义,显而易见的参数值;可能导致非法用户通过参数值
27、猜想我们系统有效数据。尽量使用数值或者无意义的参数作为url地址使用get方式传送参数;物理路径泄漏:避免Web服务器的某些显示环境变量的程序错误的输出了Web服务器的物理路径;避免Web服务器处理用户请求出错导致的物理信息泄漏。等等。示例如通过提交一个超长的请求,或者是某个精心构造的特殊请求,或是请求一个Web服务器上不存在的文件。失效证证及会话管理漏洞说明如果WEB站点没有对用户账户、会话令牌进行严格的认证及保护,以及对用户与站点之间的会话进行安全连接,或者没有妥善处理它们之间会话的生命周期,那么就有可能存在用户被劫持和会话内容泄漏或被利用的风险。此漏洞也是所有WEB应用框架都存在的安全漏
28、洞。漏洞危害攻击者使用密码、密钥或认证令牌伪装其它用户的身份。处理说明建立一个无法预测的安全令牌后,就必须在这个令牌生成到废止的整个生命周期中保障它的安全,确保不会将其泄露给除令牌用户以外的其他任何人。会话生命周期管理:(1)会话创建的严格验证;(2)会话退出:应总是执行退出功能,通过它删除服务器上的所有会话资源并终止会话令牌;(3)会话有效性:处于非活动状态一段时间(如10分钟)后,应执行会话终止;(4)应防止并行登录,每次一名用户登录,都应发布一个新会话令牌,同时废止任何属于该用户的现有会话;应采取特殊措施保护会话管理机制的安全,防止应用程序用户成为各种攻击的目标。如:不能以明文形式传送的
29、令牌;绝不能在URL中传送会话令牌,因为这样做易于受到会话固定攻击,并可能使令牌出现在各种日志机制中最好是对所有导航使用POST请求实现这一目的,并将令牌保存在HTML表单隐藏字段中。不完全依赖HTTP cookie 传送会话令牌可防御跨站点请求伪造攻击。应用程序不得接受它认为不是自己发布的任意会话令牌。应立即在浏览器中取消该令牌,并将用户返回到应用程序的起始页面。任何时候,只要一名用户与应用程序的交互状态由匿名转变为确认,应用程序就应该发布一个新的会话令牌。这不仅适用于用户成功登录的情况,而且适用于匿名用户首次提交个人或其他敏感信息时。示例略不安全的信息存储及通信漏洞说明大多数WEB应用程序
30、都使用加密技术来保护敏感数据的安全。但是,还有一些WEB站点却使用简单的不合理的加密技术来保护敏感数据,有的甚至根本没有使用任何加密技术,这些方式都有可能造成机密的数据被查看、修改、复制或删除。另外,当用户与WEB站点进行通信时,如果不对在网络中传输的数据包时行加密传输,就有可能被攻击通过以网络嗅探的方式截获,从而引起严重的安全事件。现在一种普遍的WEB内容加密通信方式就是使用SSL(也就是安全套接字)。漏洞危害攻击者通过缺乏有效保护的数据来窃取身份及其它犯罪行为。处理说明对敏感数据需要进行保护,如:加密;对关键的数据传输采用加密传输。示例无限制URL访问失效漏洞说明通常,一个没有授权并且没有
31、通过验证的用户是不可能打开一个受保护的网页的。但是,如果WEB站点使用了错误的RRL访问控制规则,那么,一个有明确动机且技术高超的攻击者就有可能利用这个漏洞打开这些网页,并且有可能引用其中的某些功能和查看机密数据。漏洞危害攻击者就有可能利用这个漏洞打开这些网页,并且有可能引用其中的某些功能和查看机密数据。处理说明正确配置WEB站点的访问控制策略,以便将所有可能的非法访问者在打开网页全部拒之门外。示例无特殊字符的HTML转换漏洞说明数据库读取一些<div>标签或特殊字符(如单引号等)在页面直接展示;漏洞危害使直接页面输出值时页面样式走样。处理说明尽量先把特殊字符做HTML字符转换示例
32、无缓冲区溢出漏洞说明缓冲区溢出漏洞想必大家都很熟悉,无非是Web服务器没有对用户提交的超长请求没有进行合适的处理,这种请求可能包括超长URL,超长HTTP Header域,或者是其它超长的数据。漏洞危害可能造成程序崩溃或者执行攻击者的命令。处理说明1、及时打上WEB软件、操作系统补丁;2、对用户提交的数据进行长度判断。示例无安全开发规范结合常见WEB安全漏洞,对部门日常基于互联网网站的代码开发,提出以下规范要求。用户登录处理登录程序需要对用户输入的用户名及口令仔细进行有效性校验;对用户提交一些登录数据进行合法性验证,过滤掉一些特殊字符,主要有%<>&+-"'
33、;(),%主要是为了过滤%20前的一些非可见字符引发的问题,如回车(%0a)、换行符(%0d)、空字符(%00),<>是为了过滤HTML和JAVASCRIPT脚本注入,% ; & + - " '( ) 主要是为了防止SQL脚本注入;要求登录验证必须采用图片验证码方式;对于口令验证过程,建议采用下列方式:根据提交的用户名在数据库中查找记录,如果没有则出错返回,如果有该用户,转步骤<2>;将得到的记录中的口令部分与用户输入的口令进行字符串比较,如果一致则允许通过,否则出错返回。注意:不要在一条select语句中同时完成对用户/口令的验证,以增加潜在
34、的危险攻击的难度。会话安全建立一个无法预测的安全令牌后,在这个令牌生成到废止的整个生命周期中保障它的安全,确保不会将其泄露给除令牌用户以外的其他任何人;会话生命周期管理:(1)会话创建的严格验证;(2)会话退出:应总是执行退出功能,通过它删除服务器上的所有会话资源并终止会话令牌;(3)会话有效性:处于非活动状态一段时间(如10分钟)后,应执行会话终止;(4)应防止并行登录,每次一名用户登录,都应发布一个新会话令牌,同时废止任何属于该用户的现有会话;应采取特殊措施保护会话管理机制的安全,防止应用程序用户成为各种攻击的目标。如:不能以明文形式传送的令牌;绝不能在URL中传送会话令牌,因为这样做易于
35、受到会话固定攻击,并可能使令牌出现在各种日志机制中;最好是对所有导航使用POST请求实现这一目的,并将令牌保存在HTML表单隐藏字段中;不完全依赖HTTP cookie 传送会话令牌可防御跨站点请求伪造攻击。应用程序不得接受它认为不是自己发布的任意会话令牌。应立即在浏览器中取消该令牌,并将用户返回到应用程序的起始页面。任何时候,只要一名用户与应用程序的交互状态由匿名转变为确认,应用程序就应该发布一个新的会话令牌。这不仅适用于用户成功登录的情况,而且适用于匿名用户首次提交个人或其他敏感信息时。用户输入检查及过滤目前网站安全最常见的问题,就是注入和XSS攻击,而这两个攻击的源头,都来自于没有妥善过
36、滤由使用者传来的数据,除了输入数据之外,包含cookie、参数都可能成为黑客利用的工具。 因此要求对用户输入提交的内容进行严格过滤:要求对用户输入内容进行业务内容合法性检查;对用户提交的数据进行长度判断;要求在WEB前端、WEB后端均需要进行数据检查。客户输入的原始数据进行校验不要完全依赖于Script。脚本是不安全的,用户可能屏蔽脚本,因引要求在客户端合法性检查的基础上,还需要将用户数据送入服务器端,在服务器上验证字符串的合法性。拒绝任何以斜线开始的内容; 斜线意味着“相对于根”或绝对路径。用户很少需要访问web根目录之外的数据,这样他们使用的路径就是相对于web根目录,而不是绝对
37、路径,为安全起见,有必要拒绝任何以斜线开始的内容;拒绝任何包含单个点(.)和两个点(.)的序列的内容在路径中单个点(.)和两个点(.)的序列有特殊含义。单点意味着“相对于当前目录”,而双点意味着“相对于当前目录的父目录”。有些人可以建立象./././etc/passwd这样的串逆向三层,然后向下进入/etc/passwd文件,从而对系统安全造成极大威胁;在把用户提交的数据传送给系统之前,过滤掉如下字符:1 |(竖线符号)2 & (& 符号)3;(分号)4 $(美元符号)5 %(百分比符号)6 (at 符号)7 '(单引号)8 "(引号)9 '(反斜杠转
38、义单引号)10 "(反斜杠转义引号)11 <>(尖括号)12 ()(括号)13 +(加号)14 CR(回车符,ASCII 0x0d)15 LF(换行,ASCII 0x0a)16 ,(逗号)17 (反斜杠)还有:* ! # :如:HTML的输入标识符中去除所有输入的尖括号'<' ' >';仔细检查输入语句,一般情况拒绝如下命令:rm fmail delete /etc/passwd或其它对系统有威胁的操作。对数值型变量,首先要判断其内容是不是真的数值型,如果不是,就进行出错处理。界面输出对所有输出数据进行适当的编码,以防止任何已成
39、功注入的脚本在浏览器端运行。页面重定向尽量不将用户提交的数据合并到重定向目标中;从应用程序中删除重定向页面,用直接指向相关目标URL的链接替代指向重定向页面的链接;建立一个包含所有有效重定向URL的列表。不以参数的形式向重定向页面传送目标 URL,相反,传送这个列表的一个索引。重定向页面应在它的列表中查询这个索引,并返回一个指向相关URL的重定向。应用程序应在所有重定向中使用相对 URL,重定向页面应严格确认它收到的URL是一个相对URL。它应当确认:用户提交的URL或者以单独一个斜线字符、后接一个字母开头,或者以一个字母开头,并且在第一个斜线前没有冒号。应拒绝而不是净化任何其他输入。对于确需
40、要根据用户输入数据进行重组生成一个url进行,进行页面重定向的,跳转个面时先要将字符串用URLEncoder.encode()进行编码。错误信息处理有许多程序开发人员对于错误处理不够细心,导致脚本语法或数据库发生错误时,直接让错误码呈现在浏览器,错误信息对一般的使用者没什么意义,但往往会给黑客带来许多参考价值。在开发过程中,往往设定输出一些出错信息,或者借助系统的出错信息对程序进行调试。在提交测试后,要求注意替换这些出错误提示信息,以免泄露一些重要的信息给恶意攻击者。特别时在程序测试阶段,一定要注意用户输入错误数据后程序的运行结果及报错信息等。为了不让教多了十分小心地正在做登录时的错误信息弄错
41、什么了。面向用户的错误信息不应该给的太足,以免用户由此推断出程序的内部结构的相关信息。对WEB站点所返回的错误信息应当以最通用的方式表示,尽量不显露出服务器物理路径、操作系统版本和数据库等信息。对象访问权限控制应用程序的访问权限,如针对每个业务界面都判断权限,没有权限的直接跳转到错误提示界面;使用非直接的对象引用这防止了攻击者直接访问其并未授权的对象,通过一种mapping或是其他的方法让攻击者无法直接访问,比如用户号码不在URL中直接传递,而是通过调用父窗口中的某个方法取得,避免攻击者直接修改URL串的信息,意外得到其他用户的信息;检查访问对每一个来自于不信任的源的直接对象引用都必须包含访问
42、控制检查,从而确信该用户对该对象拥有访问权,比如判断当前传入的用户号码和已经登录的用户号码是否一致,如果不一致,则认为是漏洞攻击。上传内容检查严格检查上传文件的类型,对jsp和war后缀文件,需要进行限制;采用白名单严格限制上传类型。敏感信息处理关键的重要的数据参数发送时不要出现在URL中;hidden字段的数据不能修改传递(hidden的值不能被显示,但是会被传递并且在html源文件中可以查看值,防止其值被修改并传递)不要用hidden去取数据,建议可以利用session来保存hidden数据;有些档案该删就删,例如一些应用程序的安装脚本不要留在系统上,账号等相关的敏感数据一定要设在防止搜寻
43、引擎索引、快取的数据夹,或设定相关的防索引语法。 密码储存及使用密码不要采用明码的方式储进数据库,透过像是md5的方式进行编码,让敏感信息可以受到更好的保障;对关键的数据(如密码)传输采用加密传输,如使用SSL安全套接字;密码使用删除密码:如果在应用运行中有将密码保存到内存或应用运行生命周期内的,应在使用后进行清空。数据库执行脚本对于java语言代码,在所有可能的情况下,应该使用preparedstatement和动态sql,即用?符号代表参数,通过preparedstatement的setxxx(如setint, setstring等)方法设置参数,然后执行sql语句,不要养成在每
44、次语句执行前根据参数拼sql语句的习惯。系统调用尽量减少system()、popen()之类的系统调用,特别是这些调用如果要激活一个系统shell时,更应该仔细检查其安全性,以免被黑客利用。如果不是特别需要,不要使用system()或者popen()这样的系统调用,特别是以用户输入的数据作为这些调用的参数的时候。如果没有对用户输入数据进行分析处理,可能会被用来执行系统命令。如果必须使用这些调用,应当过滤掉用户输入数据中存在的危险字符: ; & < >等等。WEB服务器配置正确配置WEB站点的访问控制策略,以便将所有可能的非法访问者在打开网页全部拒之门外,比如可以配置过滤器,
45、对所有页面进行登录验证码的校验,无效的验证码将不允许访问这些页面,而是直接跳转到登录界面。参考: 毕 业 论 文论文题目学 院专 业年 级姓 名指导教师职 称(200 年 月)教务处制毕业设计说明书与毕业论文撰写的规范化要求一篇完整的毕业设计说明书或毕业论文有题目、摘要及关键词、目录、引言(前言)、正文、结论、谢辞、参考文献、附录等几部分构成。要求理工科专业不少于4000字,文科专业不少于6000字。一、毕业设计说明书撰写的主要内容与基本要求一份完整的毕业设计说明书应包括如下主要内容:1题目设计课题名称,要求简洁、确切、鲜明。2中外文摘要及关键词应扼要叙述本设计的主要内容、特点,文字要简练。中
46、文摘要约300字左右;外文摘要约250个实词左右。关键词35个。3目录主要内容的目录。4前言应说明本设计的目的、意义、范围及应达到的技术要求;简述本课题在国内(外)的发展概况及存在的问题;本设计的指导思想;阐述本设计应解决的主要问题。 5正文(1)设计方案论证:应说明设计原理并进行方案选择。应说明为什么要选择这个方案(包括各种方案的分析、比较);还应阐述所采用方案的特点(如采用了何种新技术、新措施、提高了什么性能等)。(2)设计及计算部分:这是设计说明书的重要组成部分,应详细写明设计结果及计算结果。(3)样机或试件的各种实验及测试情况:包括实验方法、线路及数据处理等。(4)方案的校验:说明所设
47、计的系统是否满足各项性能指标的要求,能否达到预期效果。校验的方法可以是理论分析(即反推算),包括系统分析;也可以是实验测试及计算机的上机运算等。6结论概括说明本设计的情况和价值 ,分析其优点、特色,有何创新,性能达到何水平,并指出其中存在的问题和今后的改进方向。7谢辞简述自己通过本设计的体会,并对指导老师和协助完成设计的有关人员表示谢意。8参考文献应列出主要参考文献。9附录将各种篇幅较大的图纸、数据表格、计算机程序等作为附录附于说明书之后。二、毕业论文撰写的主要内容与基本要求1题目题目应该简短、明确,要有概括性,让人看后能大致了解文章的确切内容、专业的特点和学科的范畴。题目的字数要适当,一般不
48、宜超过20字。字体为2中外文摘要及关键词摘要也称内容提要,应当以浓缩的形式概括研究课题的主要内容、方法和观点,以及取得的主要成果和结论,应反映整个论文的精华。中文摘要约300字左右为宜,同时要求写出250个实词左右的外文摘要。关键词3-5个。摘要应写得扼要、准确,一般在毕业论文全文完成后再写摘要。在写作中要注意以下几点:(1)用精练、概括的语言表达,每项内容均不宜展开论证。(2)要客观陈述,不宜加主观评价。(3)成果和结论性意见是摘要的重点内容,在文字上用量较多,以加深读者的印象。(4)要独立成文,选词用语要避免与全文尤其是前言和结论雷同。(5)既要写得简短扼要,又要行文活泼,在词语润色、表达
49、方法和章法结构上要尽可能写得有文采,以唤起读者对全文的阅读的兴趣。3目录(必要时)论文编写完成后,为了醒目和便于读者阅读,可为论文编写一个目录。目录可分章节,每一章节之后应编写页码。4前言前言是全篇论文的开场白,它包括:(1)选题的缘由。(2)对本课题已有研究情况的评述。(3)说明所要解决的问题和采用的手段、方法。(4)概括成果及意义。作为摘要和前言,虽然所定的内容大体相同,但仍有很大的区别。区别主要在于:摘要一般要写得高度概括、简略,前言则可以稍微具体些;摘要的某些内容,如结论意见,可以作为笼统的表达,而前言中所有的内容则必须明确表达;摘要不写选题的缘由,前言则明确反映;在文字量上前言一般多
50、于摘要。5正文正文是作者对自己研究工作的详细表述。它占全文的较多篇幅。主要内容包括研究工作的基本前提、假设和条件;模型的建立,实验方案的拟定;基本概念和理论基础;设计计算的主要方法和内容;实验方法、内容及其结果和意义的阐明;理论论证,理论在实际中的应用等等。根据课题的性质,论文正文允许包括上述部分内容。正文的写作要求:(1)理论分析部分应写明所作的假设及其合理性,所用的分析方法、计算方法、实验方法等哪些是别人用过的,哪些是自己改进的,哪些是自己创造的,以便指导教师审查和纠正。这部分所占篇幅不宜过多,应以简练、明了的文字概略表达。(2)课题研究的方法与手段分别用以下几种方法说明:a用实验方法研究课题,应具体说明实验用的装置、仪器、原材料的性能是否标准,并应对所有装置、仪器、原材料做出检验和标定。对实验的过程或操作方法,力求叙述得简明扼要,对人所共知的或细节性的内容不必详述。b用理论推导的手段和方法达到研究目的的,这方面内容一定要精心组织,做到概念准确,判断推理符合客观事物的发展规律,符合人们对客观事物的认识习惯与程序。换言之,要做到言之有序,言之有理,以论点为中枢,组织成完整而严谨的内容整体。c用调查研究的方法达到研究目的的,调查目标、对象、范围、时间、地点、调查的过程和方法等,这些内容与研究的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 国防教育服务及军事技能训练合同4篇
- 改建硫酸工程方案模板(3篇)
- 钉钉工程方案流程(3篇)
- 球车安全驾驶培训内容课件
- 安全教训培训台账课件
- 安全教育集中培训内容
- 安全教育管理培训心得课件
- 培养高中生阅读质疑能力“三落点”
- 房屋安全加固工程方案(3篇)
- 安全教育正确灭火课件
- 花坛景观设计59课件讲解
- 主要诊断及主要手术的选择原则
- 2024年急危重症患者鼻空肠营养管管理专家共识
- 医学教材 《中国高尿酸血症相关疾病诊疗多学科专家共识(2023年版)》解读课件
- 公转私借款合同书模板
- 2024版债务处理咨询服务协议
- 《我们走在大路上》 课件 2024-2025学年湘教版初中美术七年级上册
- 2024年八年级物理上册必背考点113条背记手册
- 供应链安全风险评估
- 2024年国家义务教育质量监测体育与健康学科成绩提升培训会
- 移动公司个人求职简历模板
评论
0/150
提交评论