Ormai i tentativi di intrusioni sono all’ordine del giorno. Per migliorare la sicurezza dei vostri wordpress ecco una mini-how to che spiega come configurare fail2ban in modo che metta in jail gli ip che provano ad effettuare i login ai vari wordpress.

Per prima cosa editiamo il file /etc/fail2ban/jail.conf e aggiungiamo in fondo le seguenti righe:

[codesyntax ]

[apache-wp-login]
enabled = true
port    = http,https
action   = iptables[name=WP, port=http, protocol=tcp]
filter  = apache-wp-login
logpath = /var/www/vhosts/*/logs/access_log  # qui occorre inserire la path dove risiedono i vari access log dei vari domini
maxretry = 3

[/codesyntax]

poi creiamo il file /etc/fail2ban/filter.d/apache-wp-login.conf e al suo interno inseriamo le seguenti righe:

[codesyntax]

# Fail2Ban configuration file
[Definition]
failregex = <HOST>.*] "POST /wp-login.php
ignoreregex =

[/codesyntax]

una volta effettuato riavviamo fail2ban con il comando /etc/init.d/fail2ban restart

ecco fatto ! basta guardare iptables (con il comando iptables -L) per vedere se vengono messi in jail subito degli ip.

Ecco come prevenire un attacco XSS. Nel nostro codice creiamo queste due funzioni:

[codesyntax lang=”php”]

//xss mitigation functions
function xssafe($data,$encoding='UTF-8') {
	return htmlspecialchars($data,ENT_QUOTES | ENT_HTML401,$encoding);
}

function xecho($data) {
	echo xssafe($data);
}

[/codesyntax]

 

La funzione xecho la dobbiamo usare in tutti gli output di variabile $_POST e $_REQUEST che vengono restituiti dalla pagina PHP. Esempio:

[codesyntax lang=”php”]

echo 'La username <strong>'.$_POST['username'].'</strong> non è corretta !';

[/codesyntax]

diventerà

[codesyntax lang=”php”]

echo 'La username <strong>'.(xecho($_POST['username'])).'</strong> non è corretta !';

[/codesyntax]

 

Ecco il codice

package com.org.sascha.utility;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

public class loopHashMap {

 public static void main(String[] args) {

  //inizializzo la HashMap
  java.util.Map < Integer, String > map = new java.util.HashMap < > ();
  map.put(1, “Riga1”);
  map.put(2, “Riga2”);
  map.put(3, “Riga3”);

  for (Map.Entry < String, String > entry: map.entrySet()) {
   System.out.println(“Chiave: ”+entry.getKey() + ”Valore: ”+entry.getValue());
  }

 }

}

Basta definire la seguente variabile nel file wp-config.php

define(‘WP_DEBUG’, true);

Altrimenti sempre nel file wp-config.php

if ( isset($_GET[‘debug’]) && $_GET[‘debug’] == ‘debug’)
define(‘WP_DEBUG’, true);

in modo che basta aggiungere al proprio url ?debug=debug ed avere in quel preciso momento il debug

esempio http://www.miosito.it/?debug=debug

Oggi, grazie a Nessus, ho scoperto questo piccolo trucchetto per avere delle informazioni sul php che è in esecuzione su di un server.

Per sapere la versione occorre aggiungere ad link che richiama una pagina php ?=PHPE9568F36-D428-11d2-A769-00AA001ACF42

esempio: http://miosito.it/index.php?=PHPE9568F36-D428-11d2-A769-00AA001ACF42

In base all’immagine che apparirà si potrà conoscere la versione del php installato sul server

UN PROGRAMMATORE PHP CON GRISSINI (Thies C. Arntzen):
PHP 4.0.0 – 4.2.3

CANE MARRONE (Stig’s dog, Nadia):
PHP 4.3.0 – 4.3.10

CANE NERO SCOTTISH TERRIER (Zeev’s dog, Scotch):
PHP 4.3.11 – 4.4.6; and 5.0.4 – 5.1.2

BUNNY (Il coniglio di Sterling, Carmella):
PHP 5.0.0 – 5.0.3

PHP LOGO COLORATO:
PHP 5.1.3 – 5.2.13

PHP LOGO CON ELEFANTE:
PHP Version 5.3.0 – current

Mentre per conoscere la versione dello Zend Framework occorre richiamare ?=PHPB8B5F2A0-3C92-11d3-A3A9-4C7B08C10000

esempio http://miosito.it/index.php?=PHPB8B5F2A0-3C92-11d3-A3A9-4C7B08C10000

Per ovviare questa falla occorre impostare expose_php ad off in php.ini

Maggiori informazioni le potete trovare qui http://www.0php.com/php_easter_egg.php

Vi segnalo questa funzione che ho scritto. Crea in automatico un permalink da una stringa.


function creaPermalink($str) {
   $str = strtolower($str);
   $str = preg_replace("/[^0-9A-Za-z ]/", "", $str);
   $str = str_replace(" ", "-", $str);
   while (strstr($str, "--")) {
      $str = preg_replace("/--/", "-", $str);
   }
   return($str);
}

Volvevo segnalarvi questo ottima classe in PHP Browser.php disponibili al seguente indirizzo:

http://chrisschuld.com/projects/browser-php-detecting-a-users-browser-from-php/

Questa classe si rivela molto utile per il riconoscimento delle varie informazioni del browser web.

Io personalmente la utilizzo molto per riconoscere i dispositivi mobili (mobile device) come ad esempio l’iPad e … Ecco un esempio di codice:

include_once(‘browser.php’);
$browser = new Browser();
if( $browser->isMobile() ) {
header(“Location: http://indirizzo_sito_versione_mobile”);
}