From ab1bba9daba5500e1b154579518369974cc6041a Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Thu, 14 May 2015 11:37:47 -0400 Subject: cloak user PII when making commits etc, and let cloaked PII be used in banned_users This was needed due to emailauth, but I've also wrapped all IP address exposure in cloak(), although the function doesn't yet cloak IP addresses. (One IP address I didn't cloak is the one that appears on the password reset email template. That is expected to be the user's own IP address, so ok to show it to them.) Thanks to smcv for the pointer to http://xmlns.com/foaf/spec/#term_mbox_sha1sum --- IkiWiki.pm | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'IkiWiki.pm') diff --git a/IkiWiki.pm b/IkiWiki.pm index dfdd0fe91..bb36b0885 100644 --- a/IkiWiki.pm +++ b/IkiWiki.pm @@ -1430,6 +1430,7 @@ sub userpage ($) { return length $config{userdir} ? "$config{userdir}/$user" : $user; } +# Username to display for openid accounts. sub openiduser ($) { my $user=shift; @@ -1464,6 +1465,7 @@ sub openiduser ($) { return; } +# Username to display for emailauth accounts. sub emailuser ($) { my $user=shift; if (defined $user && $user =~ m/(.+)@/) { @@ -1475,6 +1477,22 @@ sub emailuser ($) { return; } +# Some user information should not be exposed in commit metadata, etc. +# This generates a cloaked form of such information. +sub cloak ($) { + my $user=shift; + # cloak email address using http://xmlns.com/foaf/spec/#term_mbox_sha1sum + if ($user=~m/(.+)@/) { + my $nick=$1; + eval q{use Digest::SHA}; + return $user if $@; + return $nick.'@'.Digest::SHA::sha1_hex("mailto:$user"); + } + else { + return $user; + } +} + sub htmlize ($$$$) { my $page=shift; my $destpage=shift; -- cgit v1.2.3