Flask Talisman Политика безопасности контента - PullRequest
0 голосов
/ 03 октября 2019

Я хочу использовать Flask-talisman для защиты моего приложения

SELF =  '\'self\''
talisman = Talisman(
    app,
    content_security_policy={
        'default-src': [
            'https://fonts.googleapis.com',
              'https://cdnjs.cloudflare.com',
            SELF
        ],
        'img-src': '*',
        'script-src': [
            'www.paypal.com',
            'https://cdnjs.cloudflare.com',
            'https://cdnjs.cloudflare.com/ajax/libs/sweetalert/2.1.2/sweetalert.min.js',
             SELF
        ],
        'script-src-elem': [
         SELF,
         'https://cdnjs.cloudflare.com',
        # '\'sha256-rK9uOBOU6xGxNC0yyDvR8H+SSKlJ5zxJECCgbFv4/yQ=\'',
        # '\'sha256-CaM1VBFl4RtJZ9Br0nB80ZvFXnrUk3vr/4+pScd4lMQ=\'',
        # '\'sha256-BcYd5oXoLvDaktAA37B436mVSFB3DoC5aLwM1OorXAk=\'',
        # '\'sha256-V68+36l83hbDfO58E+T6u2tGJGhbcpAqCEfNCD3n2qY=\'',
        'www.paypal.com',
        ],
        'style-src': [
            'https://fonts.googleapis.com',
            'https://cdnjs.cloudflare.com',
            'https://cdnjs.cloudflare.com/ajax/libs/sweetalert/2.1.2/sweetalert.min.js',
            SELF
         #    '\'sha256-AjpxHAnhAkbI3p301rAQ19y+QSGq2Jl7vv0Q7WzjR+c=\'',
         #    '\'sha256-47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=\'',
         #    '\'sha256-Y5HGV3cmFL1QmdV9FMkQjm7MR7FR+stNxbf9+GKET60=\'',
         #    '\'sha256-47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=\'',
         #    '\'sha256-lMuNwjy4Fw1In/+Nadl5ZPm5gAa4t2jbLUL/ybM9rzU=\'',
         #    '\'sha256-lMuNwjy4Fw1In/+Nadl5ZPm5gAa4t2jbLUL/ybM9rzU=\'',
         #    '\'sha256-7/kvZYAvW6o7J2rMfMbFOsaTsThj6/tBw+lPsMSniSA=\'',
         #    '\'sha256-AjpxHAnhAkbI3p301rAQ19y+QSGq2Jl7vv0Q7WzjR+c=\'',
         #    '\'sha256-AjpxHAnhAkbI3p301rAQ19y+QSGq2Jl7vv0Q7WzjR+c=\'',
         #    '\'sha256-IF8jfWBSZfCEeoCvSHf23OXvf0RDYWltkvNrcEzpDBE=\'',
         #    '\'sha256-AjpxHAnhAkbI3p301rAQ19y+QSGq2Jl7vv0Q7WzjR+c=\'',
         #    '\'sha256-IF8jfWBSZfCEeoCvSHf23OXvf0RDYWltkvNrcEzpDBE=\'',
         #    '\'sha256-AjpxHAnhAkbI3p301rAQ19y+QSGq2Jl7vv0Q7WzjR+c=\'',
         #    '\'sha256-0rOxHPZ4bWknhNsyCN7zXu9gXxyWLKCvfWr1ZAuyzgY=\'',
         #    '\'sha256-kg8NTQKmLiYaDjmboMwJGfasUnDZfDeIJ7aXV4r5BVc=\'',
         #    '\'sha256-VPm872V2JvE+vhivDg7UeH+N9a9YzzqGGow5mzY48hc=\'',
         #    '\'sha256-i/PynXyovXdKWqaHlhds+BOU5Iis84bZpECM9wKzq+U=\'',
            # '\'sha256-VPm872V2JvE+vhivDg7UeH+N9a9YzzqGGow5mzY48hc=\'',
            # '\'sha256-VPm872V2JvE+vhivDg7UeH+N9a9YzzqGGow5mzY48hc=\'',
            # '\'sha256-IVUmBkRCdvydC0Uh8tn6KMTNiZNvKrJOMResPyDMax8=\''
        ],
        'style-src-elem':[
        SELF,
            'https://fonts.googleapis.com',
            'https://cdnjs.cloudflare.com',
            'https://cdnjs.cloudflare.com/ajax/libs/sweetalert/2.1.2/sweetalert.min.js',
         #    '\'sha256-AjpxHAnhAkbI3p301rAQ19y+QSGq2Jl7vv0Q7WzjR+c=\'',
         #    '\'sha256-47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=\'',
         #    '\'sha256-Y5HGV3cmFL1QmdV9FMkQjm7MR7FR+stNxbf9+GKET60=\'',
         #    '\'sha256-47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=\'',
         #    '\'sha256-lMuNwjy4Fw1In/+Nadl5ZPm5gAa4t2jbLUL/ybM9rzU=\'',
         #    '\'sha256-lMuNwjy4Fw1In/+Nadl5ZPm5gAa4t2jbLUL/ybM9rzU=\'',
         #    '\'sha256-7/kvZYAvW6o7J2rMfMbFOsaTsThj6/tBw+lPsMSniSA=\'',
         #    '\'sha256-AjpxHAnhAkbI3p301rAQ19y+QSGq2Jl7vv0Q7WzjR+c=\'',
         #    '\'sha256-AjpxHAnhAkbI3p301rAQ19y+QSGq2Jl7vv0Q7WzjR+c=\'',
         #    '\'sha256-IF8jfWBSZfCEeoCvSHf23OXvf0RDYWltkvNrcEzpDBE=\'',
         #    '\'sha256-AjpxHAnhAkbI3p301rAQ19y+QSGq2Jl7vv0Q7WzjR+c=\'',
         #    '\'sha256-IF8jfWBSZfCEeoCvSHf23OXvf0RDYWltkvNrcEzpDBE=\'',
         #    '\'sha256-AjpxHAnhAkbI3p301rAQ19y+QSGq2Jl7vv0Q7WzjR+c=\'',
         #    '\'sha256-0rOxHPZ4bWknhNsyCN7zXu9gXxyWLKCvfWr1ZAuyzgY=\'',
         #    '\'sha256-kg8NTQKmLiYaDjmboMwJGfasUnDZfDeIJ7aXV4r5BVc=\'',
         #    '\'sha256-VPm872V2JvE+vhivDg7UeH+N9a9YzzqGGow5mzY48hc=\'',
         #    '\'sha256-i/PynXyovXdKWqaHlhds+BOU5Iis84bZpECM9wKzq+U=\'',
            # '\'sha256-VPm872V2JvE+vhivDg7UeH+N9a9YzzqGGow5mzY48hc=\'',
            # '\'sha256-VPm872V2JvE+vhivDg7UeH+N9a9YzzqGGow5mzY48hc=\'',
            # '\'sha256-IVUmBkRCdvydC0Uh8tn6KMTNiZNvKrJOMResPyDMax8=\''
        ],
        'font-src': '*',
        'connect-src':'*',
        'frame-src': 'www.sandbox.paypal.com'
    },
    content_security_policy_nonce_in=['script-src','style-src','style-src-elem','script-src-elem','default-src']
)

Я всегда получаю сообщение об ошибке, в котором встроенный стиль может быть встроен, поскольку он нарушает CSP.

Refused to apply inline style because it violates the following Content Security Policy directive: "style-src https://fonts.googleapis.com https://cdnjs.cloudflare.com https://cdnjs.cloudflare.com/ajax/libs/sweetalert/2.1.2/sweetalert.min.js 'self' 'nonce-U3i4mzwI3bQdxarcYAcYUA'". Either the 'unsafe-inline' keyword, a hash ('sha256-lMuNwjy4Fw1In/+Nadl5ZPm5gAa4t2jbLUL/ybM9rzU='), or a nonce ('nonce-...') is required to enable inline execution.

Я правильно использую хеш? или это потому, что я включаю «САМО» в белый список. в соответствии с https://www.merixstudio.com/blog/content-security-policy-flask-and-django-part-1/

Обратите внимание, что при использовании политики «self» встроенные сценарии будут блокироваться, поскольку они являются наиболее распространенным способом внедрения кода JavaScript в веб-сайт. Конечно, может использоваться политика unsafe-inline, но предпочтительнее использовать политики nonce или sha.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...