美文网首页程序员
Django 常见Web攻击

Django 常见Web攻击

作者: 阿提艾斯 | 来源:发表于2019-04-12 15:55 被阅读3次

1、sql注入攻击与防范

sql注入是黑客攻击数据库最常用的手段。
sql注入的危害:

  • 非法读取、篡改、删除数据库中的数据
  • 盗取用户的各类敏感信息获取利益
  • 通过修改数据库来修改网页上的内容
  • 注入木马等等

例子
如下是一个不安全的登录逻辑,仅仅是从数据库中查找用户名和密码是否一致。(users.view)

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="123456", db="mooc_online", 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
# 配置url
urlpatterns = [
    url(r'^xadmin/', xadmin.site.urls),
    # url('^login/$', LoginView.as_view(), name="login"),
    url('^login/$', LoginUnsafeView.as_view(), name="login"),
]

配置好url之后,去登录页面界面进行登录。
输入账号: ' OR 1=1#
密码:随意输入

登录
调试之后,发现查询到结果,数据库中共有2条用户信息。绕过了sql 语句的检查,永远为真,实现登录。所以在写登录逻辑时要检查,用户不能输入单引号。。。
debug调试

2、xss攻击与防范

xss跨站脚本攻击(Cross Site Scripting)的危害:

  • 盗取各类用户账号,如用户网银账号、各类管理员账号
  • 盗窃企业重要的具有商业价值的资料
  • 非法转账
  • 控制受害者机器向其它网站发起攻击、注入木马等等。

xss攻击流程
1、受害者向服务器发送请求url
2、服务器根据url发送数据到受害者
例子:
正常请求:http://www.bank.com/product/list/?name='iphone6'
黑客在参数里加入js代码,拿到用户cookie信息,伪装用户向服务器发送请求:
http://www.bank.com/product/list/?name=<script>x=document.cookie;alert(x);</script>

防止xss攻击

  • 首先代码里对用户输入的地方和变量都需要仔细检查长度和对“<”,“>”,“;”,“'”等字符做过滤;
  • 避免直接在cookie中泄露用户隐私,例如email、密码等等
  • 通过使cookie和系统ip绑定来降低cookie泄漏后的危险。
  • 尽量使用POST而非GET提交表单

3、csrf攻击与防范

csrf跨站请求伪造(Cross-site request forgery)的危害:

  • 以你名义发送邮件
  • 盗取你的账号
  • 购买商品
  • 虚拟货币转账

csrf攻击原理:
csrf攻击简单理解就是:黑客想让你转账到一个账号,黑客没有你的sessionid不能转,但是你有sessionid啊,你可以转,黑客可以给你发链接,让你点击后自己转账。
举个例子:
黑客给你传入的html页面中有一个图片,
<img src=http://www.mybank.com/Transfer/toBankId=11&money=1000>,当你点击后,因为你有sessionid,会通过系统认证,会成功给用户11转账1000,从而达到黑客转账的目的。

csrf攻击原理
这里关键的是用户在没有登出A的时候访问B,如果用户登出A,cookie就会失效,上面例子中的转账操作就会失败。
Django项目中POST提交表单中添加{% csrf_token %}就是为了防止csrf攻击。

相关文章

  • Django 常见Web攻击

    1、sql注入攻击与防范 sql注入是黑客攻击数据库最常用的手段。sql注入的危害: 非法读取、篡改、删除数据库中...

  • 第十章 在线教育平台(web常见攻击以及防备)

    web常见攻击以及防备 标签: django sql注入攻击与防范 特点[1] 非法读取、篡改、删除数据库数据[2...

  • 图解 HTTP

    常见 Web 的攻击技术 互联网上的攻击大都将 Web 站点作为目标。常见的攻击手段有哪些,以及攻击会造成怎样的影...

  • 常见Web攻击

    HTML注入 HTML 注入向站点和开发者展示了漏洞,因为他可以用于误导用户,并且欺骗它们来提交一些敏感信息,或者...

  • 常见web攻击

    常见web攻击:https://www.cnblogs.com/morethink/p/8734103.html搞...

  • 常见web攻击

    web攻击 1. 定义 随着Web2.0、社交网络、微博等等一系列新型的互联网产品的诞生,基于Web环境的互联网应...

  • Web常见几种攻击与预防方式

    Web常见几种攻击与预防方式

  • XSS攻击简单实例

    XSS为目前web常见攻击手段之一,不了解的同学可以看我的上一篇文章《常见WEB攻击之XSS攻击》 下面我演示一个...

  • xss攻击

    前端安全之XSS攻击 XSS(cross-site scripting跨域脚本攻击)攻击是最常见的Web攻击,其重...

  • 常见web攻击总结

    搞Web开发离不开安全这个话题,确保网站或者网页应用的安全性,是每个开发人员都应该了解的事。本篇主要简单介绍在We...

网友评论

    本文标题:Django 常见Web攻击

    本文链接:https://www.haomeiwen.com/subject/vprcwqtx.html