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

简介

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

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) 

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

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

SELECT id FROM users WHERE username='username' AND password='password' OR 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 跟存储型 XSS 的区别是

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值