20155311《网络对抗》Web安全基础实践

基础问题回答

SQL注入攻击原理,如何防御?

原理:SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作,使非法数据侵入系统。

  • 防御:

  • 1.对用户的输入进行校验,可以通过正则表达式,双"-"进行转换等。
  • 2.不要使用动态拼装sql,可以使用参数化的sql或者直接使用存储过程进行数据查询存取。
  • 3.不要使用管理员权限的数据库连接,为每个应用使用单独的权限有限的数据库连接。
  • 4.不要把机密信息直接存放,加密或者hash掉密码和敏感的信息。
  • 5.应用的异常信息应该给出尽可能少的提示。
  • 6.采取辅助软件或网站平台来检测sql注入。

    XSS攻击的原理,如何防御?

  • 原理:XSS是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码(如,HTML代码和客户端脚本)植入到提供给其它用户使用的页面中,攻击者可以利用XSS漏洞旁路掉访问控制。

  • 防御:

  • 1.特征匹配方式,在所有提交的信息中都进行匹配检查,一般会对“javascript”这个关键字进行检索,一旦发现提交信息中包含“javascript”,就认定为XSS攻击。
  • 2.对所有用户提交内容进行可靠的输入验证,包括对URL、查询关键字、HTTP头、POST数据等,仅接受指定长度范围内、采用适当格式、采用所预期的字符的内容提交,对其他的一律过滤。
  • 3.实现Session标记(session tokens)、CAPTCHA系统或者HTTP引用头检查,以防功能被第三方网站所执行。

    CSRF攻击原理,如何防御?

  • 原理:CSRF跨站请求伪造,也被称为“oneclickattack”或者sessionriding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用,通过伪装来自受信任用户的请求来利用受信任的网站。是一种依赖web浏览器的、被混淆过的代理人攻击。

  • 防御:

  • 1.在form中包含秘密信息、用户指定的代号作为cookie之外的验证。
  • 2.“双提交”cookie。某个授权的cookie在form post之前正被JavaScript代码读取,那么限制跨域规则将被应用。服务器需要在Post请求体或者URL中包含授权cookie的请求,那么这个请求必须来自于受信任的域。
  • 3.用户在浏览其它站点前登出站点或者在浏览器会话结束后清理浏览器的cookie。

    实验过程

    WebGoat

在终端中输入java -jar webgoat-container-7.0.1-war-exec.jar开启WebGoat。

当页面成功停在下图位置时,最小化终端窗口:

打开浏览器,在地址栏输入localhost:8080/WebGoat打开WebGoat,选择默认账号、密码即可登陆成功。

XSS攻击

1、Phishing with XSS 跨站脚本钓鱼攻击

跨站脚本攻击最大的魅力是通过HTML注入劫持用户的浏览器,任意构造用户当前浏览的HTML内容,甚至可以模拟用户当前的操作。这里实验的是一种获取用户名和密码的攻击

先编写一个包含用户名、密码的前端代码:
`

最新文章

  1. angular之上滑换页指令
  2. Thinkphp回顾(五)之前台模板中的基本语法
  3. Javascript是单线程的深入分析
  4. MFC 定义和调用全局变量的一种方法
  5. [Android] Android Sutdio on Surface Pro 3
  6. 在Yii用createUrl中明明白白生成网址
  7. (基础篇)PHP与JavaScript交互
  8. mysql存储过程中字符串参数单引号
  9. Linux是一门真正的黑客高手艺术
  10. 【Android】创建Popwindow弹出菜单的两种方式
  11. 1数组的join方法
  12. java中Set类接口的用法
  13. codeforces#1152C. Neko does Maths(最小公倍数)
  14. JS 超类和子类
  15. input输入框提交输入的值的方式
  16. PythonStudy——内存管理之垃圾回收 Memory management Garbage collection
  17. 塔式Server 服务器ESXI6.5安装
  18. 结合 spring 使用阿里 Druid 连接池配置方法
  19. Java的八种基本类型:(按字节来分)
  20. 检测空值,以及会不会出现mapping类型不一致的问题

热门文章

  1. R中的空间数据分析
  2. Android GetMethodID 函数的说明
  3. describe命令
  4. 关于kernel-devel、kernel-header和kernel src的区别
  5. Hibernate 拦截器
  6. python类的内置方法
  7. 如何让VB6代码编辑器垂直滚动条随鼠标滚轮滚动
  8. MySQL 8.0.2: Introducing Window Functions
  9. Gmail 设置,时区
  10. Python实例---beautifulsoup小Demo