码迷,mamicode.com
首页 > Web开发 > 详细

Exp9 Web安全基础

时间:2018-05-29 20:43:04      阅读:179      评论:0      收藏:0      [点我收藏+]

标签:使用   erer   通过   如何   影响   目标   表单   SSRF   正则表达   

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安全基础

标签:使用   erer   通过   如何   影响   目标   表单   SSRF   正则表达   

原文地址:https://www.cnblogs.com/wangshuaifeng/p/9107504.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!