零基础使用Django2.0.1打造在线教育网站(二十五):常见的网络攻防

关于博主

努力与运动兼备~~~有任何问题可以加我好友或者关注微信公众号,欢迎交流,我们一起进步!

                                      微信公众号:  啃饼思录
                                    QQ: 2810706745(啃饼小白)

写在前面

本篇笔记我们将介绍常见的网络攻击与防护,具体包括SQL注入攻击及防护XSS攻击及防护以及CSRF攻击及防护,下面我们依次介绍一下。

SQL注入攻击及防护

首先我们来了解一下什么是SQL注入?


所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。具体来说,它是利用现有应用程序,将(恶意的)SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句。比如先前的很多影视网站泄露VIP会员密码大多就是通过WEB表单递交查询字符暴出的,这类表单特别容易受到SQL注入式攻击。


SQL注入的危害:

下面我们通过一段代码了解一下SQL注入的过程:

# users/views.py文件:
class LoginUnsafeView(View):
    def get(self, request):
        return render(request, "login.html", {})
    def post(self, request):
        user_name = request.POST.get("username", "")
        pass_word = request.POST.get("password", "")

        import MySQLdb
        conn = MySQLdb.connect(host='127.0.0.1', user='root', passwd='root', db='mxonline', charset='utf8')
        cursor = conn.cursor()
        sql_select = "select * from users_userprofile where email='{0}' and password='{1}'".format(user_name, pass_word)

        result = cursor.execute(sql_select)
        for row in cursor.fetchall():
            # 查询到用户
            pass
        print 'hello'

# eduline/urls.py文件:
from users.views import LoginUnsafeView

urlpatterns = [
    path('login/', LoginUnsafeView.as_view(), name='login'),
]

这里竟然把sql语句写到这里,所以我们可以在参数中加入sql语句,使之拼接字符串从而为真被系统识别通过,盗取用户信息。但是在Django自带了orm,可以对这个进行验证,从而保证系统的安全。

因此建议大家都采用orm这种形式,不要使用原生的sql语句。

XSS攻击及防护

首先我们来了解一下什么是XSS攻击?


XSS跨站脚本攻击(Cross Site Scripting),是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。


XSS攻击的危害:

攻击流程为:

举个例子来说:

当你输入iPhone6时,这个字符就会被显示到页面中:

之后,黑客就会修改js代码:

然后就拿到了你的登录cookie就可以进入你的账户进行肆意掠夺你的money了。

这也就是为什么你觉得自己明明进入的是官方网站,怎么账号(经常就是QQ号)被盗了的缘故,所以不要随意点开陌生人发的链接。

XSS防护:

CSRF攻击及防护

首先我们来了解一下什么是CSRF攻击?


CSRF(Cross-site request forgery)跨站请求伪造,是通过伪装来自受信任用户的请求来利用受信任的网站。


CSRF攻击的危害:

攻击流程为:

你看,这就是伪装:用户开始访问了A,之后访问了B,而B是要求用户访问A的。用户以为这是跳转到A的链接,以为很官方,殊不知就是这种官方泄露了自己的信息。

原因在于用户每次向A请求时,都会带上session id,这样就很容易出问题。


CSRF防护:提交form表单必须添加crsf token,进行crsf token验证,而攻击网站是无法生成crsf token的。还有一点,但凡涉及到敏感信息的网站,你登录进去就要及时登出,这样可以避免很多问题的发生。

至此,本篇关于常见网络攻击与防护的介绍就到此为止了,感谢你的赏阅!

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏数据和云

Oracle 12.2新特性掌上手册 - 第三卷 Sharding 的增强

编辑手记:Sharding技术我们谈了好久,想必大家并不陌生,该功能12.2最新版本中,也将变得越来越完善,今天我们一起来学习。 注:文章内容来自官方文档翻译。...

2783
来自专栏北京马哥教育

60秒内快速搭建完整zabbix3.4.6监控系统

2205
来自专栏MongoDB中文社区

​MongoDB 4.0 系列之 \b—— 事务实现解析(\b一)

Mongodb4.0引入了多文档事务的特性,我们来看,4.0中是如何进行一个多文档事务的(js的mongoshell代码)。

1893
来自专栏Java架构

阿里P9架构师谈:高并发网站的监控系统选型、比较、核心监控指标

在高并发分布式环境下,对于访问量大的业务、接口等,需要及时的监控网站的健康程度,防止网站出现访问缓慢,甚至在特殊情况出现应用服务器雪崩等场景,在高并发场景下网站...

4184
来自专栏张戈的专栏

解决卸载WP No Category Base插件后页面出现404的问题

其实这个插件已经卸载几天了,用了歌神分享的代码版。今天改代码时候,刷新主题的几个文件,包括 functions.php,结果悲剧的事情发生了: ? 所有文章页面...

3537
来自专栏IT技术精选文摘

LVS集群的体系结构

1.引言 在过去的十几年中,Internet从几个研究机构相连为信息共享的网络发展成为拥有大量应用和服务的全球性网络,它正成为人们生活中不可缺少的 一部分。虽...

2608
来自专栏coding

RabbitMQ实战1.消息代理01.消息代理02.安装RabbitMQ03.生产者-消费者模式04.队列操作

肯定不是,这种直接与生产者交易的成本太大了!大到不可承受。因此有了中间商的存在。中间商将生产者与消费者的所有环节都透明化,使最终的交易流程极其简单。

821
来自专栏知识分享

邪恶改装2:用单片机实现一次简单的wifi密码欺骗

         前段时间用TPYBoard v202 做了一个简单的WIFI干扰攻击器(ps :没有看过的小伙伴,可以看一下:http://www.freeb...

1423
来自专栏小灰灰

时序数据库InfluxDB-v1.6.0安装和简单使用小结

InfluxDB是一个时序性数据库,因为工作需求,安装后使用测试下是否支持大数据下的业务场景

1701
来自专栏北京马哥教育

TeamViewer远程唤醒主机实战教程(多图

前言:首先感谢大家来到这里。这篇文章其实算是一个教程,文章中涉及到了TeamViewer,Mac OS X,TP-Link家用路由器,以及花生壳DDNS,对于新...

1.1K4

扫码关注云+社区

领取腾讯云代金券