• 分享一些关于网站安全的知识点


    (xss攻击)跨站脚本攻击是指在一个网站的环境中注入恶任意的 HTML (包括附带的 JavaScript )

    flask预防了xss攻击:所有从后端传到前段的html代码和js代码默认是不让浏览器识别的

    如果想让前段识别html或者是js代码可以使用 Markup 方法,代码写在这个函数里面

    发送上传的 HTML ,永远不要这么做,使用 Content-Disposition: attachment 头部来避免这个问题。

    虽然 Jinja2 可以通过转义 HTML 来保护你免受 XSS 问题,但是仍无法避免一种情况:属性注入的 XSS 。为了免受这 种攻击,必须确保在属性中使用 Jinja 表达式时,始终用单引号或双引号包裹:

    例子


    这样做的目的是什么?
    这样做的目的是方式攻击者使用html+js代码进行对网站的攻击

    有一类 XSS 问题 Jinja 的转义无法阻止。 a 标记的 href 属性可以包含 一个 javascript: URI 。如果没有正确保护,那么当点击它时浏览器将执行其代 码。

    例子

    """
    click here
    click here
    """

    攻击演示案例

    html中的代码

    """

    Title 点击 """

    .py文件中的代码

    @app.route('/', methods=['GET'])
    def index():

    return render_template('index.html')
    

    为了防止发生这种问题,需要设置 Content Security Policy (CSP) 响应头部。

    告诉浏览器哪里可以加载各种资源。这个头部应当尽可能使用,但是需要为网站定义 正确的政策。一个非常严格的政策是:

    response.headers['Content-Security-Policy'] = "default-src 'self'"

    告诉浏览器把所有 HTTP 请求转化为 HTTPS ,以防止 man-in-the-middle (MITM) 攻击。

    response.headers['Strict-Transport-Security'] = 'max-age=31536000; includeSubDomains'


    跨站请求伪造( CSRF )
    那么如何预防这个问题呢?基本思路是:对于每个要求修改服务器内容的请求,应该 使用一次性令牌,并存储在 cookie 里, 并且 在发送表单数据的同时附上它。 在服务器再次接收数据之后,需要比较两个令牌,并确保它们相等。

    这个预防测试flask没有做


    json安全
    小伙伴们这个比较复杂,等整理好了马上分享 谢谢大家的分享点赞

  • 相关阅读:
    Java NIO -- 通道 Channel
    【RF库Collections测试】Convert To List
    【RF库Collections测试】Create Dictionary
    【RF库Collections测试】combine lists
    【RF库Collections库测试】关键字append to list
    【RF库测试】关键字get time
    【RF库测试】DateTime库
    linux 统计命令执行后的行数或者统计目录下文件数目
    grep 同时满足多个关键字和满足任意关键字
    【python】一次执行多个linux命令
  • 原文地址:https://www.cnblogs.com/happyyou123/p/14682555.html
Copyright © 2020-2023  润新知