当前位置:   article > 正文

浅谈前端安全以及防御措施_前端信息安全

前端信息安全

简介

随着互联网的高速发展,信息安全问题已经成为行业最为关注的焦点之一。今天我们就来说说一些常见的攻击方法以及相应的防御措施。希望看完本文大家能对前端安全有更深一层的了解。

SQL 注入

SQL 注入漏洞(SQL Injection)是 Web 开发中最常见的一种安全漏洞

原理

它主要是利用前端表单提交,比如输入框、富文本框,输入sql语句提交到后端,当后端服务通过提交的字段拼接成sql语句进行数据库查询的时候,恶意sql被执行,从而达到攻击的目的。

可以用它来从数据库获取敏感信息,或者利用数据库的特性执行添加用户,导出文件等一系列恶意操作,甚至有可能获取数据库乃至系统用户最高权限。

比如我们的登录,通过接收用户输入的用户名和密码进行sql拼接然后去数据库查询。

# 接收username password
uname = request.POST['username']
passwd = request.POST['password']

# 存在 SQL 注入漏洞的 SQL 查询语句
sql = “SELECT id FROM users WHERE username=’” + uname + “’ AND password=’” + passwd + “’”

# 执行 SQL 语句
database.execute(sql) 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

我们正常输入肯定没问题,但是如果传入恶意sql呢?

比如当我传入的密码是password' OR 1=1,拼接的sql语句如下

SELECT id FROM users WHERE username='username' AND password='password' OR 1=1' 
  • 1

由于 OR 1=1 语句,无论 usernamepassword 是什么,WHERE 分句都将返回 users 表中第一个 id。数据库中第一个用户的 id 通常是数据库管理员。通过这种方式,攻击者不仅绕过了身份认证,而且还获得了管理员权限。因此就达到了攻击的目的。

防御措施

1.转义过滤用户的输入的某些 sql 关键字,如select、from、and、or等。
2.使用ORM框架如MyBatis,减少sql的手动拼接。

XSS 跨站点脚本攻击

XSS 的原理是恶意攻击者往 Web 页面里插入恶意可执行网页脚本代码,当用户浏览该页之时,嵌入其中 Web 里面的脚本代码会被执行,从而可以达到攻击者盗取用户信息或其他侵犯用户安全隐私的目的。

XSS 的本质是:恶意代码未经过滤,与网站正常的代码混在一起;浏览器无法分辨哪些脚本是可信的,导致恶意脚本被执行。

类型

XSS 一般分为存储型、反射型和 DOM 型。

存储型

存储型:顾名思义,黑客将恶意 JavaScript 脚本长期保存在服务端数据库中,用户一旦访问相关页面数据,恶意脚本就会被执行。

存储型 XSS 的攻击步骤:

1.攻击者将恶意代码提交到目标网站的数据库中。
2.用户打开目标网站时,网站服务端将恶意代码从数据库取出,拼接在 HTML 中返回给浏览器。
3.用户浏览器接收到响应后解析执行,混在其中的恶意代码也被执行。
4.恶意代码窃取用户数据并发送到攻击者的网站,或者冒充用户的行为,调用目标网站接口执行攻击者指定的操作。

这种攻击常见于带有用户保存数据的网站功能,如论坛发帖、商品评论、用户私信等。

反射型

反射型:顾名思义,恶意 JavaScript 脚本属于用户发送给网站请求中的一部分,随后网站又将这部分返回给用户,恶意脚本在页面中被执行。一般发生在前后端一体的应用中。

反射型 XSS 的攻击步骤:

1.攻击者构造出特殊的 URL,其中包含恶意代码。
2.用户打开带有恶意代码的 URL 时,网站服务端将恶意代码从 URL 中取出,拼接在 HTML 中返回给浏览器。
3.用户浏览器接收到响应后解析执行,混在其中的恶意代码也被执行。
4.恶意代码窃取用户数据并发送到攻击者的网站,或者冒充用户的行为,调用目标网站接口执行攻击者指定的操作。

反射型 XSS

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小惠珠哦/article/detail/945483
推荐阅读
相关标签
  

闽ICP备14008679号