zoukankan      html  css  js  c++  java
  • XSS攻击的防御

    XSS攻击的防御

    XSS 攻击是什么

    XSS 又称 CSS,全称 Cross SiteScript,跨站脚本攻击,是 Web 程序中常见的漏洞,XSS 属于被动式且用于客户端的攻击方式,所以容易被忽略其危害性。其原理是攻击者向有 XSS 漏洞的网站中输入(传入)恶意的 HTML 代码,当其它用户浏览该网站时,这段 HTML 代码会自动执行,从而达到攻击的目的。如,盗取用户 Cookie 、破坏页面结构、重定向到其它网站等。

    Python 中的防御方法

    利用 BeautifulSoup 模块过滤掉存在危险的 HTML 标签。

    先利用 BS 模块获得 BS 对象,在 BS 对象中查找非法标签并通过 decompose 函数过滤掉,最后存到数据库的是 BS 对象的字符串化。

    from bs4 import BeautifulSoup
    def add_article(request):
        if request.method == "POST":
            title = request.POST.get("title")
            content = request.POST.get("article_content")
            user = request.user
            bs = BeautifulSoup(content, "html.parser")
            desc = bs.text[0:150] + '...'
            # 过滤非法标签
            for tag in bs.find_all():
                if tag.name in ["script","link"]:
                    tag.decompose()
            article_obj = models.Article.objects.create(user=user, title=title, desc=desc)
            models.ArticleDetail.objects.create(content=str(bs), article=article_obj)
    
            return HttpResponse("添加成功!")
        return render(request, "add_article.html")
    

  • 相关阅读:
    Linux 设备驱动 Edition 3(中文版)
    内核和用户空间共享内存的实现例程proc和mmap
    mmap的详细使用(用户空间)
    使用 I/O 内存from LDD3
    关于strcpy、memset、memcpy的使用详解
    get_free_page 和其友
    Linux调试技术介绍
    关于信息时代的学习
    [恢]hdu 1196
    [恢]hdu 1157
  • 原文地址:https://www.cnblogs.com/banshaohuan/p/9803250.html
Copyright © 2011-2022 走看看