Created by
Robert Poz
last modified
| # Script generates nginx configuration rules for
# whitelist-based referer headers request filtering
#
# Add following line to server { } block in nginx config:
# include /etc/nginx/conf.d/referer_whitelist.conf;
NGINX_CONF_DIR=/etc/nginx/conf.d
whitelist="$1"
output=${2:-/$NGINX_CONF_DIR/referer_whitelist.conf}
usage() {
echo "This script must be run with super-user privileges."
echo -e "\nUsage:\n$0 <filename> \n"
}
if [ $# -lt 1 ] || [ ! -f $whitelist ]; then
echo $#
echo $whitelist
usage
exit 1
fi
(
echo "set \$valid_referer '';"
printf "if (\$http_referer !~ \"(%s)\") { set \$valid_referer 'true'; }" `sort $whitelist | uniq | tr "\n" "|" | sed 's/[\|]*$//'`
echo
echo "if (\$http_referer = '-') { set \$valid_referer 'true'; }"
echo "if (\$http_referer = '') { set \$valid_referer 'true'; }"
echo "if (\$valid_referer = '') { return 404; }"
) #> $output
|