web应用的安全防范.doc_第1页
web应用的安全防范.doc_第2页
web应用的安全防范.doc_第3页
web应用的安全防范.doc_第4页
web应用的安全防范.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Web数据安全sql注入所谓SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令.SQL注入成因:我们对表单数据处理时(特别是文本框)、以及Url传递参数是经常会产生例如userName=xxx;id=xxx的语句,这一类语句经常被我们传入到后台的一句SQL语句进行编译如 select * from USER u where u.username = aaa and u.password =xxx 的语句当我们用参数拼接的方式构造此类SQL语句时。一旦黑客们在前台文本框或URL填上Aaa or 1=1 一旦这个参数传入后代中 这一句SQL 就会成立在假设该人了解们系统的表结构或某些表的名称。甚至可以在后面加入删除表或数据的语句。后果不堪设想SQL注入的防范:1、永远不要信任用户的输入。对用户的输入进行校验,可以通过正则表达式,或限制长度;对单引号和 双-进行转换等2、尽量不要使用拼装SQL的方式进行数据库操作。Java可以采用预编译的方式也可有效的防止SQL注入,或者使用一些持久层框架。3、没有必要不要使用管理员权限连接数据库4、对于异常信息不要暴漏给用户。防止不法分子利用异常测试表结构XSS跨站攻击XSS攻击:跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆。故将跨站脚本攻击缩写为XSS。XSS是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。比如这些代码包括HTML代码和客户端脚本。XSS攻击原理以及频发区域:Web应用给用户与用户之间提供了一个良好的交互平台。如论坛可以让人们在网页上交流信息。但这也成为一些居心不良的黑客们的有利攻击点。比如一个黑客在某某留言版中写下如下代码/scriptscriptalert(test)/script那么如果我们没有对用户在留言板中的输入做任何校验时。这段脚本将被展现到所有浏览过这留言版的用户。当然这段脚本是毫无意义的。只是弹出了一个提示框而已。但如果我们用window.location.href=xxx;这种类似脚本既可以实现简单的跨站攻击,在弹出页面就可以做黑客任意想做的事情。因为这个页面是黑客随意编写的木马页。频发区域:留言板。个性签名。论坛帖子、标题、邮箱邮件和一些可以提交到后台的错误日志信息等等。跨站攻击的防范和SQL注入防御一样,XSS攻击也是利用了Web页面的编写疏忽,所以还有一种方法就是从Web应用开发的角度来避免:步骤1、对所有用户提交内容进行可靠的输入验证,包括对URL、查询关键字、HTTP头、POST数据等,仅接受指定长度范围内、采用适当格式、采用所预期的字符的内容提交,对其他的一律过滤。步骤2、实现Session标记(session tokens)、CAPTCHA系统或者HTTP引用头检查,以防功能被第三方网站所执行。步骤3、确认接收的的内容被妥善的规范化,仅包含最小的、安全的Tag(没有javascript),去掉任何对远程内容的引用(尤其是样式表和javascript),使用HTTP only的cookie。当然,如上操作将会降低Web业务系统的可用性,用户仅能输入少量的制定字符,人与系统间的交互被降到极致,仅适用于信息发布型站点。并且考虑到很少有Web编码人员受过正规的安全培训,很难做到完全避免页面中的XSS漏洞。数据传输安全每一个web应用的请求中都会带有很多信息。诸如表单中的信息、请求参数、主机地址等等、这些信息在传输过程中可能被拦截并加以利用。目前我们做的web应用程序都是基于网络的应用层。如果我们没有对传输数据进行加密或处理的话攻击者可以从多个层面多数据进行获取1、 通过url参数获得这种方式也是最直接最简单的方式。如我们在提交表单时候如果是get方式提交的话我们的url会显示http:/xxxxxx?username = xxx&password=xxx;首先可以看到我们的信息暴漏无疑。还有叫攻击者很容易知道我们系统所接受的参数名称。可通过url进行SQL注入等攻击。2、 表示层或传输层侵入当然我们操作的只是表示层,有些网络高手还可以以某些手短侵入网络其他层去获取我们的信息。解决方案对于第一种来说相对比较容易1、使用post来提交表单、如需要url传参时参照下2种方法2、当我们提交的表单货连接在iframe中时。路径会隐藏。3、利用.URLEncoder.encode(Base64编码(加密字串), StringCode) 这样的方法来对url中的参数进行加密。如基本的单向加密算法: BASE64 严格地说,属于编码格式,而非加密算法 MD5(Message Digest algorithm 5,信息摘要算法) SHA(Secure Hash Algorithm,安全散列算法) HMAC(Hash Message Authentication Code,散列消息鉴别码) 复杂的对称加密(DES、PBE)、非对称加密算法: DES(Data Encryption Standard,数据加密算法) PBE(Password-based encryption,基于密码验证) RSA(算法的名字以发明者的名字命名:Ron Rivest, AdiShamir 和Leonard Adleman) DH(Diffie-Hellman算法,密钥一致协议) DSA(Digital Signature Algorithm,数字签名) ECC(Elliptic Curves Cryptography,椭圆曲线密码编码学) 对用第二种侵入方式的解决方案我们可以为我们的程序加入SSL协议SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层对网络连接进行加密。我们可以知道SSL协议是基于传输层之上的一个协议。SSL协议提供的服务主要有: 1)认证用户和服务器,确保数据发送到正确的客户机和服务器; 2)加密数据以防止数据中途被窃取; 3)维护数据的完整性,确保数据在传输过程中不被改变。 在我们加入SSL 协议后,我们原有的HTTP协议将升级变为HTTPSTomcat中的SSL如果tomcat作为非独立的容器,如jboss,它嵌入了tomcat.这时候它就相当于一个插件,而不是独立的容器.这种情况下用jboss设置SSL.但如果作为独立的容器.则要设置,有两步:1. 准备安全证书.2. 配置tomcat的SSL连接器.准备安全证书从权威机构买证书就不讲了.这里说自我签名的方式.SUN提供了制作签名的工具:keytool,在JDK1,4以上版本中包含这个工具.它在:binkeytool.exe创建证书的命令是:keytool genkey alias tomcat keyalg RSA上面命令将会生成一对非对称密钥和自我签名的证书.命令中各参数含义:-genkey : 生成密钥对-alias : 指定密钥的别名,别名是公开的.-keyalg : 指定加密算法,这里是RSA算法.该命令运行时会提示输入keystore 的密码.输入tomcat默认的密码:cbangeit,然后会提示输入个人信息,按实输入就行.最后按Y确认.最后要输入tomcat密码.就是上面那个.该命令会在windows的用户目录下生成名为: .keystore的文件.如果想指定文件存放路径,可以在命令最后加入:-keystore d:实例如下:C:Documents and SettingsAdministratorkeytool -genkey -alias tomcat -keyalg RSA输入keystore密码:再次输入新密码:您的名字与姓氏是什么? Unknown: sun您的组织单位名称是什么? Unknown: ine您的组织名称是什么? Unknown: it您所在的城市或区域名称是什么? Unknown: wh您所在的州或省份名称是什么? Unknown: hubei该单位的两字母国家代码是什么 Unknown: CHCN=sun, OU=ine, O=it, L=wh, ST=hubei, C=CH 正确吗? 否: y输入的主密码 (如果和 keystore 密码相同,按回车):再次输入新密码:C:Documents and SettingsAdministrator最后,在我的C:Documents and

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论