You are here

path2ban.install in path2ban 7.2

Same filename and directory in other branches
  1. 7 path2ban.install

Install, update, and uninstall functions for the path2ban module.

File

path2ban.install
View source
<?php

/**
 * @file
 * Install, update, and uninstall functions for the path2ban module.
 */

/**
 * This function prevents us from needing to have the same configuration
 * repeated multiple times.
 */
function path2ban_get_default_paths_to_ban() {
  return file_get_contents(drupal_get_path('module', 'path2ban') . '/path2ban_default_entries.config');
}

/**
 * Implements hook_enable().
 */
function path2ban_enable() {
  variable_set('site_403', 'path2ban/403');
  variable_set('site_404', 'path2ban/404');
  variable_set('path2ban_list', variable_get('path2ban_list', path2ban_get_default_paths_to_ban()));
}

/**
 * Implements hook_disable().
 */
function path2ban_disable() {
  variable_del('site_403');
  variable_del('site_404');
}

/**
 * Implements hook_uninstall().
 */
function path2ban_uninstall() {
  variable_del('path2ban_list');
  variable_del('path2ban_threshold_limit');
  variable_del('path2ban_threshold_window');
  variable_del('path2ban_notify');
  variable_del('path2ban_test_mode');
}

/**
 * Implements hook_update_N().
 *
 * Add paths to prevent attacks encountered during Drupalgeddon 2. Review before
 * use at the path2ban config page.
 */
function path2ban_update_7101() {
  $entries_to_add = array(
    'payload.php',
    'so.php',
    'formas.php',
    'aul.php',
    'rxr.php',
    'wp-caches.php',
    'sec.php',
    'alpha.php',
    'u.php',
    'searchreplacedb2.php',
    'd7.php',
    '_.php',
    'pplugins.php',
    '*.sql',
    '*.swf',
    '*config.php',
    '*.wsf',
    '*.ssh',
  );
  Path2ban::addNewEntries($entries_to_add);
}

/**
 * Implements hook_update_N().
 *
 * Added some suggestions from toriah at
 * https://www.drupal.org/project/path2ban/issues/2456909. Review before use at
 * the path2ban config page.
 */
function path2ban_update_7201() {
  $entries_to_add = array(
    'wp/wp-*',
    'wordpress/wp-*',
    '*.asp',
    '*.cgi',
    '*.jsp',
    '*.inc.php',
    '*.php.html',
    '*.phps',
    '*UNION ALL SELECT*',
    '*SELECT DBMS_PIPE.RECEIVE_MESSAGE*',
    '*SELECT SLEEP(*',
    '*SELECT PG_SLEEP(*',
    '*(SELECT (*',
    '*SELECT COUNT(*',
  );
  Path2ban::addNewEntries($entries_to_add);
}

Functions

Namesort descending Description
path2ban_disable Implements hook_disable().
path2ban_enable Implements hook_enable().
path2ban_get_default_paths_to_ban This function prevents us from needing to have the same configuration repeated multiple times.
path2ban_uninstall Implements hook_uninstall().
path2ban_update_7101 Implements hook_update_N().
path2ban_update_7201 Implements hook_update_N().