-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512
Hi,
On Sun, 2018-07-01 at 07:49 +0200, Peter Müller wrote:
Hello Michael,
yes, I built IPfire 2.x yesterday, and the image data were included into /srv/web/ipfire/html/redirect-templates/legacy/template.html .
Is there anything wrong with this patch?
Yes, see below...
Best regards, Peter Müller
Hey,
On Sat, 2018-06-30 at 09:56 +0200, Peter Müller wrote:
Embed the IPFire background image into the redirect template directly via CSS instead of loading it from somewhere else. This is necessary because of Content Security Policy (CSP) and fixes #11650. This patch inserts the base64 encoded image during build so nothing needs to be updated twice in case background image changes. Signed-off-by: Peter Müller peter.mueller@link38.eu
html/html/redirect-templates/legacy/template.html | 7 ++++++- lfs/web-user-interface | 4 ++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/html/html/redirect-templates/legacy/template.html b/html/html/redirect-templates/legacy/template.html index b5fb61ebe..297561e3a 100644 --- a/html/html/redirect-templates/legacy/template.html +++ b/html/html/redirect-templates/legacy/template.html @@ -3,11 +3,16 @@
<head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>ACCESS MESSAGE</title> + <style content="text/css"> + td.image { + background-image: url(data:image/gif;base64,IMAGEDATAPLACEHOLDER); + } + </style> </head> <body> <table width="100%" height='100%' border="0"> <tr> - <td colspan='3' width='100%' height='130' align="center" background="<TMPL_VAR NAME="ADDRESS">/images/background.gif"> + <td colspan='3' width='100%' height='152px' align="center" class="image"> </td> <tr> <td width='10%'> <td align='center' bgcolor='#CC000000' width='80%'> diff --git a/lfs/web-user-interface b/lfs/web-user-interface index 0c5688252..b023cbd86 100644 --- a/lfs/web-user-interface +++ b/lfs/web-user-interface @@ -50,6 +50,10 @@ md5: $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) + # Add base64 encoded background image to Squid content access page + basedata="$( base64 $(DIR_SRC)/html/html/images/background.gif )" + sed -i "s/IMAGEDATAPLACEHOLDER/${basedata}/g" $(DIR_SRC)/html/html/redirect-templates/legacy/template.html
This isn't a shell script. It is make in which every line invokes a new shell. Therefore the variable assignment happens in one shell and then the next line in executed in a new one which knows nothing about the previous variable assignment.
You will have an empty image in the result file I think.
- -Michael
Did you actually test this?
- # Copy all html/cgi-bin files mkdir -p /srv/web/ipfire/{cgi-bin,html} mkdir -p /var/updatecache/{download,metadata}
-Michael