Files
zira-etc/cxs/htaccessdisable.example.pl
2021-05-24 22:18:33 +03:00

56 lines
2.0 KiB
Perl
Executable File

#!/usr/local/cpanel/3rdparty/bin/perl
#******************************************************************************
# Copyright 2009-2016, Way to the Web Limited
# URL: http://www.waytotheweb.com
# Email: sales@waytotheweb.com
#******************************************************************************
# Example to disable a directory containing a match using a .htaccess file
#
# NOTE: If you intend to use this script, copy it to a different filename as
# this file will be overwritten when cxs upgrades
use strict;
use File::Basename;
# Set to 1 to have more verbose output
my $verbose = 0;
if (@ARGV < 2) {print "\ncpanelsuspend.pl: Not enough Args to suspend: @ARGV\n"; exit}
# Assign arguments to variables
my $filename = $ARGV[0];
my $option = $ARGV[1];
my $message = $ARGV[2];
my $account = $ARGV[3];
# Get the directory name from the file name
my $dirname = dirname($filename);
# If option is a Virus or Known Exploit
if ($option =~ /v|M$/) {
# Check we have a directory
if (-d $dirname) {
# Check that we haven't already disabled a .htaccess file in this directory
if (!(-e "$dirname/.htaccess.cxs_disable") and -e "$dirname/.htaccess") {
system("/bin/cp","-a","$dirname/.htaccess","$dirname/.htaccess.cxs_disable");
}
elsif (-e "$dirname/.htaccess.cxs_disable" and !(-e "$dirname/.htaccess")) {
unlink("$dirname/.htaccess.cxs_disable");
}
# Write out a new .htaccess file denying access
open (my $HTACCESS, ">", "$dirname/.htaccess") or die "htaccessdisable.pl: Unable to create [$dirname/.htaccess] - $!";
print $HTACCESS "#cxs has disabled web access to this directory\n";
print $HTACCESS "deny from all\n";
close ($HTACCESS) or die "htaccessdisable.pl: Unable to create [$dirname/.htaccess] - $!";
if ($verbose) {print "\nhtaccessdisable.pl: Directory [$dirname] disabled\n"}
} else {if ($verbose) {print "\nhtaccessdisable.pl: Directory for [$filename] does not exist\n"}}
} else {if ($verbose) {print "\nhtaccessdisable.pl: Not a suspend option ($option)\n"}}
exit;