Exp9 Web安全基础
Posted wangshuaifeng
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Exp9 Web安全基础相关的知识,希望对你有一定的参考价值。
Exp9 Web安全基础
20154316 王帅峰
一、实验要求
本实践的目标理解常用网络攻击技术的基本原理。
二、基础问题回答
1. SQL注入攻击原理,如何防御?
- SQL注入攻击就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意SQL命令的目的。
- 对于SQL注入攻击的防范,主要还是从代码上入手:
- 采用预编译语句集PreparedStatement,它内置了处理SQL注入的能力,只要使用它的setXXX方法传值即可。它的原理就是sql注入只对sql语句的准备(编译)过程有破坏作用,而PreparedStatement已经准备好了,执行阶段只是把输入串作为数据处理,而不再对sql语句进行解析准备,因此也就避免了sql注入问题;
- 使用正则表达式过滤传入的参数,对一些包含sql注入的关键字进行过滤;
- 采用字符串过滤的方法;
jsp中调用该函数检查是否包含非法字符,防止SQL从URL注入。
2. XSS攻击的原理,如何防御?
- SS是代码注入的一种,它允许恶意用户将代码注入到网页上,并能够被浏览器成功的执行,其他用户在观看网页时就会受到影响。这类攻击通常包含了html以及用户端脚本语言。XSS攻击的主要目的是,想办法获取目标攻击网站的cookie,因为有了cookie相当于有了seesion,有了这些信息就可以在任意能接进互联网的pc登陆该网站,并以其他人的身份登陆,做一些破坏。
- 防御可以从以下两个方面进行:
- 在表单提交或者URL参数传递前就对其参数进行过滤
检查用户输入的内容中是否有非法的内容,例如尖括号、引号等之类的字符,严格控制输出。
3. CSRF攻击原理,如何防御?
- 我们知道XSS是跨站脚本攻击,就是在用户的浏览器中执行攻击者的脚本,来获得其cookie等信息。而CSRF是借用用户的身份,向web server发送请求,因为该请求不是用户本意,所以称为“跨站请求伪造”。
- 对CSSRF的防御可以从一下几个方面进行;
- 通过referer、token或者验证码来检测用户提交;
- 尽量不要在页面的链接中暴露用户隐私信息,对于用户修改删除等操作最好都使用post操作;
避免全站通用的cookie,严格设置cookie的域。
三、实践过程
1.安装WebGoat
从同学那里考了一份下载好的压缩文件,复制到Linux上边运行
java -jar *.jar
指令(*表示文件名)即可安装webgoat。
打开浏览器,输入
127.0.0.1:8080/WebGoat
,注册一个用户就可以在这个网站上做练习,也可以选择默认的账号登录。
以上是关于Exp9 Web安全基础的主要内容,如果未能解决你的问题,请参考以下文章