sync with MirBSD and tarent: proper CDATA escapes for JS and CSS
authorThorsten Glaser <t.glaser@tarent.de>
Fri, 23 May 2014 09:51:21 +0000 (11:51 +0200)
committerThorsten Glaser <t.glaser@tarent.de>
Fri, 23 May 2014 09:51:21 +0000 (11:51 +0200)
mksh/csrgen.cgi
mksh/debian-dev/mkdebidx.sh
mksh/sysadmin/mvndebri.sh

index 1425281..4d84351 100644 (file)
@@ -1,7 +1,7 @@
 #!/bin/mksh
-# $Id: csrgen 2084 2011-06-09 20:54:16Z tglase $
+# $Id: csrgen 4043 2014-05-23 09:35:30Z tglase $
 #-
-# Copyright © 2010, 2011
+# Copyright © 2010, 2011, 2014
 #      Thorsten Glaser <t.glaser@tarent.de>
 #
 # Provided that these terms and disclaimer and all copyright notices
@@ -98,15 +98,19 @@ Content-type: text/html; charset=UTF-8
  "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"><head>
  <title>Generierung eines Certificate Signing Request</title>
- <style type="text/css"><!--
+ <style type="text/css"><!--/*--><![CDATA[/*><!--*/
        strong { background-color:#FF0000; color:#000000; }
- //--></style>
+ /*]]>*/--></style>
 </head><body>
 <h1>Generierung eines Certificate Signing Request</h1>
 EOF
 [[ -z $feedback ]] || print -r -- "<p><strong>$feedback</strong></p>"
+if [[ $HTTPS != on ]]; then
+       echo '</body></html>'
+       exit 1
+fi
 cat <<'EOF'
-<form action="https://spamfilter2.tarent.de/cgi-bin/csrgen" method="get">
+<form action="csrgen" method="get">
 <p>Hostname: <input name="fqdn" type="text" size="32" maxlength="255" /></p>
 <p>Stärke:<br />
  <input type="radio" name="strength" value="2048" checked="checked" />2048 Bit<br />
index fd6b6ab..8661e8d 100644 (file)
@@ -1,7 +1,7 @@
 #!/bin/mksh
-rcsid='$MirOS: contrib/hosted/tg/deb/mkdebidx.sh,v 1.60 2013/11/14 15:07:45 tg Exp $'
+rcsid='$MirOS: contrib/hosted/tg/deb/mkdebidx.sh,v 1.61 2014/05/23 09:44:30 tg Exp $'
 #-
-# Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013
+# Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014
 #      Thorsten Glaser <tg@mirbsd.org>
 #
 # Provided that these terms and disclaimer and all copyright notices
@@ -462,8 +462,8 @@ done
 EOF
 print -r -- " <title>${repo_title} Index</title>"
 cat <<'EOF'
- <meta name="generator" content="$MirOS: contrib/hosted/tg/deb/mkdebidx.sh,v 1.60 2013/11/14 15:07:45 tg Exp $" />
- <style type="text/css">
+ <meta name="generator" content="$MirOS: contrib/hosted/tg/deb/mkdebidx.sh,v 1.61 2014/05/23 09:44:30 tg Exp $" />
+ <style type="text/css"><!--/*--><![CDATA[/*><!--*/
   table {
    border: 1px solid black;
    border-collapse: collapse;
@@ -502,7 +502,7 @@ cat <<'EOF'
    color: #FFFFFF;
    font-weight: bold;
   }
- </style>
/*]]>*/--></style>
 </head><body>
 EOF
 print -r -- "<h1>${repo_title}</h1>"
index adac691..f21db39 100644 (file)
@@ -1,10 +1,10 @@
 #!/bin/mksh
-rcsid='$MirOS: contrib/hosted/tg/deb/mkdebidx.sh,v 1.56 2012/08/02 21:01:39 tg Exp $'
-rcsid='$Id: mvndebri.sh 3150 2012-08-15 11:17:10Z tglase $'
+rcsid='$MirOS: contrib/hosted/tg/deb/mkdebidx.sh,v 1.61 2014/05/23 09:44:30 tg Exp $'
+rcsid='$Id: mvndebri.sh 4044 2014-05-23 09:48:47Z tglase $'
 #-
-# Copyright (c) 2008, 2009, 2010, 2011, 2012
+# Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014
 #      Thorsten Glaser <tg@mirbsd.org>
-# Copyright (c) 2011
+# Copyright (c) 2011, 2014
 #      Thorsten Glaser <t.glaser@tarent.de>
 #
 # Provided that these terms and disclaimer and all copyright notices
@@ -68,9 +68,9 @@ function repo_description {
 }
 
 
-#set -A dpkgarchs -- alpha amd64 arm armel armhf avr32 hppa hurd-i386 i386 \
+#set -A dpkgarchs -- alpha amd64 arm arm64 armel armhf hppa hurd-i386 i386 \
 #    ia64 kfreebsd-amd64 kfreebsd-i386 m68k mips mipsel powerpc powerpcspe \
-#    ppc64 s390 s390x sh4 sparc sparc64
+#    ppc64 s390 s390x sh4 sparc sparc64 x32
 set -A dpkgarchs -- amd64 i386
 
 function putfile {
@@ -91,6 +91,20 @@ function sortlist {
        done | sort $u
 }
 
+# escape XHTML characters (three mandatory XML ones plus double quotes,
+# the latter in an XML safe fashion numerically though)
+function xhtml_escape {
+       if (( $# )); then
+               print -nr -- "$@"
+       else
+               cat
+       fi | sed \
+           -e 's\ 1&\ 1\&amp;\ 1g' \
+           -e 's\ 1<\ 1\&lt;\ 1g' \
+           -e 's\ 1>\ 1\&gt;\ 1g' \
+           -e 's\ 1"\ 1\&#34;\ 1g'
+}
+
 set +U
 export LC_ALL=C
 unset LANGUAGE
@@ -172,10 +186,13 @@ for suite in dists/*; do
 
        gpg -u $repo_keyid --batch --passphrase-file /etc/tarent/maven.kpw \
            -sab <$suite/Release-tmp >$suite/Release-sig
-       gpg -u $repo_keyid --batch --passphrase-file /etc/tarent/maven.kpw \
-           --clearsign <$suite/Release-tmp >$suite/Release-inl
+       # Debian's fix for CVE-2013-1051 consists of disabling
+       # support for InRelease files altogether (WTF!)
+       #gpg -u $repo_keyid --batch --passphrase-file /etc/tarent/maven.kpw \
+       #    --clearsign <$suite/Release-tmp >$suite/Release-inl
 
-       mv -f $suite/Release-inl $suite/InRelease
+       rm -f $suite/InRelease
+       #mv -f $suite/Release-inl $suite/InRelease
        mv -f $suite/Release-tmp $suite/Release
        mv -f $suite/Release-sig $suite/Release.gpg
        rm -f $suite/Release-*
@@ -342,8 +359,8 @@ done
 EOF
 print -r -- " <title>${repo_title} Index</title>"
 cat <<'EOF'
- <meta name="generator" content="Evolvis shellsnippets git based on $Id: mvndebri.sh 3150 2012-08-15 11:17:10Z tglase $ based on $MirOS: contrib/hosted/tg/deb/mkdebidx.sh,v 1.56 2012/08/02 21:01:39 tg Exp $" />
- <style type="text/css">
+ <meta name="generator" content="Evolvis shellsnippets git based on $$Id: mvndebri.sh 4044 2014-05-23 09:48:47Z tglase $ based on $MirOS: contrib/hosted/tg/deb/mkdebidx.sh,v 1.61 2014/05/23 09:44:30 tg Exp $" />
+ <style type="text/css"><!--/*--><![CDATA[/*><!--*/
   table {
    border: 1px solid black;
    border-collapse: collapse;
@@ -382,7 +399,7 @@ cat <<'EOF'
    color: #FFFFFF;
    font-weight: bold;
   }
- </style>
/*]]>*/--></style>
 </head><body>
 EOF
 print -r -- "<h1>${repo_title}</h1>"
@@ -492,7 +509,7 @@ while read -p num rest; do
                print "<!-- bp #$i -->"
                print "<tr class=\"binpkgline\">"
                print " <td class=\"binpkgname\">${bp_disp[i]}</td>"
-               print " <td class=\"binpkgdesc\">${bp_desc[i]}</td>"
+               print " <td class=\"binpkgdesc\">$(xhtml_escape "${bp_desc[i]}")</td>"
                for suitename in $allsuites; do
                        eval pv=\${bp_ver_${suitename}[i]}
                        if [[ -z $pv ]]; then
@@ -523,7 +540,7 @@ for i in ${bp_sort[*]}; do
        print "<!-- bp #$i -->"
        print "<tr class=\"binpkgline\">"
        print " <td class=\"binpkgdist\">${bp_dist[i]}</td>"
-       print " <td rowspan=\"2\" class=\"binpkgdesc\">${bp_desc[i]}</td>"
+       print " <td rowspan=\"2\" class=\"binpkgdesc\">$(xhtml_escape "${bp_desc[i]}")</td>"
        for suitename in $allsuites; do
                eval pv=\${bp_ver_${suitename}[i]}
                if [[ -z $pv ]]; then