Content Security Policy “data” not working for base64 Images in Chrome 28

后端 未结 2 1005
离开以前
离开以前 2020-12-02 12:34

In this simple example, I\'m trying to set a CSP header with the meta http-equiv header. I included a base64 image and I\'m trying to make Chrome load the image.

I t

相关标签:
2条回答
  • 2020-12-02 13:15

    Try this

    data to load:

    <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'><path fill='#343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/></svg>
    

    get a utf8 to base64 convertor and convert the "svg" string to:

    PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCA0IDUn
    PjxwYXRoIGZpbGw9JyMzNDNhNDAnIGQ9J00yIDBMMCAyaDR6bTAgNUwwIDNoNHonLz48L3N2Zz4=
    

    and the CSP is

    img-src data: image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCA0IDUn
    PjxwYXRoIGZpbGw9JyMzNDNhNDAnIGQ9J00yIDBMMCAyaDR6bTAgNUwwIDNoNHonLz48L3N2Zz4=
    
    0 讨论(0)
  • 2020-12-02 13:27

    According to the grammar in the CSP spec, you need to specify schemes as scheme:, not just scheme. So, you need to change the image source directive to:

    img-src 'self' data:;
    
    0 讨论(0)
提交回复
热议问题