PHP AntiLeech, Código para evitar los Leechs o sanguijuelas de internet

Un leech o sanguijuela en internet es un ente? persona o maquina que se dedica a robar información de sitios de manera sistemática y/o automatizada.

En la actualidad hay mas maquinas haciendo de leech o sanguijuela que personas, ya que el volumen de información que estos entes prentende robar es grande, ya son cientos de millones de sitios web en el mundo.

Según la wikipedia un leech en computación es:

“En la computación y específicamente Internet, una sanguijuela es el que se beneficia, por lo general deliberadamente, de la información o el esfuerzo de los demás, pero no ofrece nada a cambio, o sólo hace ofrendas simbólicas en un intento de evitar ser llamado una sanguijuela. En economía, este tipo de comportamiento se denomina “free riding” y se asocia con el problema del polizón. ”

En la realidad no ofrecen absolutamente nada, solo la molestia de perder información en nuestros sitio web cuando un leech automático ingresa al sistema y roba información vital o no, es de mal gusto que luego de horas de trabajo tengamos que volver a una version anterior perdiendo post o cualquier otra información.

Para ello he publicado el paquete PHP AntiLeech en la comunidad www.phpclasses.org donde tradicionalmente he publicado los códigos que hhe desarrollado de acuerdo a cada caso.

Esta clase puede comprobar las direcciones IP en un archivo de lista negra de IP.

Se puede agregar una dirección IP a un archivo de texto de lista negra.

La clase también puede comprobar si una determinada IP ya aparece más de un número determinado de veces, la clase salidas HTML etiquetas meta para redirigir al usuario a una página determinada.

El usuario que la implemente puede asignar varios parametros entre ellos:

en la función check_ip

  • la url hacia donde quiere redireccionar el atacante cuando es baneado
  • la ip del atacante
  • la cantidad de intentos permitidos antes de ser baneado

en la funcion clear_ip_list

  • la hora del día en que quiere el usuario que implementa, borrar la lista negra
  • el nombre del archivo de la lista negra.

en la funcion add_bad_ip

  • la ip del ente que ha sobrepasado la cantidad de intentos permitidos.

 

Puede descargar el paquete desde este enlace:

DESCARGAR PHP ANTI LEECH

Como crear una Redirección 301

Redirección 301 con ASP Clásico

<%@ Language=VBScript %>
<%
Response.Status=”301 Moved Permanently”
Response.AddHeader “Location”,”http://www.new-url.com/”
%>

Redirección 301 con ASP .NET

<script runat=”server”>
private void Page_Load(object sender, System.EventArgs e)
{
Response.Status = “301 Moved Permanently”;
Response.AddHeader(“Location”,”http://www.new-url.com”);
}
</script>

Redirección 301 con JSP (Java)

<%
response.setStatus(301);
response.setHeader( “Location”, “http://www.new-url.com/” );
response.setHeader( “Connection”, “close” );
%>

Redireccion 301 usando CGI PERL

$q = new CGI;
print $q->redirect(“http://www.new-url.com/”);

Redirección 301 usando Ruby on Rails

def old_action
headers[“Status”] = “301 Moved Permanently”
redirect_to “http://www.new-url.com/”
end

Redireccion usando htaccess

Options +FollowSymLinks

RewriteEngine on
RewriteRule (.*) http://www.newdomain.com/$1 [R=301,L]

Atención: este método solo trabaja en servidores Linux que tengan Apache corriendo el Mod-Rewrite

 

Redirección de www y sin www al mismo dominio usando htaccess

Options +FollowSymlinks

RewriteEngine on
rewritecond %{http_host} ^domain.com [nc]
rewriterule ^(.*)$ http://www.domain.com/$1 [r=301,nc]

Atención: este método solo trabaja en servidores Linux que tengan Apache corriendo el Mod-Rewrite

Ranking Lenguajes de Programación Julio 2013

– Estamos a medio camino a través del año. Así que es hora de comprobar qué lenguajes lo están haciendo bien y cuáles están perdiendo popularidad.

Si se compara los datos de este mes de julio con los obtenidos en enero de 2013, PHP es la tecnología que ha experimentado un mayor crecimiento con un incremento del 1,64%. La relevancia de este lenguaje diseñado para el desarrollo web así como la reciente llegada de la versión 5.5 final y sobre todo el nuevo Zend Framework PHP lanzado en septiembre de 2012 parecen ser los principales motores detrás de su popularidad.

Tras PHP encontramos en una posición destacada en 2013 a lenguajes de bases de datos Transact-SQL (Lenguaje de Búsquedas Estructurado ) (0,99%) y PL / SQL (0,34%) que con un crecimiento sostenido ya están a punto de entrar el top 10.

Llama también la atención como Objective –C con un crecimiento más suave que lo que experimentó en 2011 y 2012 donde fue el lenguaje de programación del año, ha logrado consolidarse en la tercera posición de esta clasificación por detrás de C y Java.

En lado de la perdida de relevancia entre programadores encontramos, Object Pascal, una evolución del lenguaje de programación Pascal con inclusión de elementos pertenecientes a la programación orientada a objetos desarrollada por Apple a mediados de los 80.

Ranking Lenguajes de Programación Julio 2013

1. C
2. Java
3. Objective-C
4. C++
5. PHP
6. C#
7. (Visual) Basic
8. Python
9. Perl
10. JavaScript
11. Ruby

Este ranking está basado en el indice TIOBE que a su vez se fundamenta en el número de ingenieros cualificados de todo el mundo, cursos y proveedores de terceros. Los motores de búsqueda de Google, Bing, Yahoo!, Wikipedia, Amazon, YouTube y Baidu se utilizan para calcular dichas calificaciones.
fuente.desarrolloweb

Tablas de comparación de tipos de datos en PHP

Comparaciones de $x con funciones PHP
Expresión gettype() empty() is_null() isset() boolean : if($x)
$x = “”; string TRUE FALSE TRUE FALSE
$x = null NULL TRUE TRUE FALSE FALSE
var $x; NULL TRUE TRUE FALSE FALSE
$x no definido NULL TRUE TRUE FALSE FALSE
$x = array(); array TRUE FALSE TRUE FALSE
$x = false; boolean TRUE FALSE TRUE FALSE
$x = true; boolean FALSE FALSE TRUE TRUE
$x = 1; integer FALSE FALSE TRUE TRUE
$x = 42; integer FALSE FALSE TRUE TRUE
$x = 0; integer TRUE FALSE TRUE FALSE
$x = -1; integer FALSE FALSE TRUE TRUE
$x = “1”; string FALSE FALSE TRUE TRUE
$x = “0”; string TRUE FALSE TRUE FALSE
$x = “-1”; string FALSE FALSE TRUE TRUE
$x = “php”; string FALSE FALSE TRUE TRUE
$x = “true”; string FALSE FALSE TRUE TRUE
$x = “false”; string FALSE FALSE TRUE TRUE

 

 

 

 

 

Validaciones de variables en PHP, caso isset

En la vida real de cualquier programador un dolor de cabeza es las validaciones de tipos de datos, vamos a ver algunas de ellas en el lenguaje PHP, en esta primera entrega veremos si una variable está definida y no es NULA..

isset — Determina si una variable está definida y no es NULL

Si una variable ha sido removida con unset(), esta ya no estará definida. isset() devolverá FALSE si prueba una variable que ha sido definida como NULL. También tenga en cuenta que un byte NULL (“\0”) no es equivalente a la constante NULL de PHP.

Si son pasados varios parámetros, entonces isset() devolverá TRUE únicamente si todos los parámetros están definidos. La evaluación se realiza de izquierda a derecha y se detiene tan pronto como se encuentre una variable no definida.

Valores devueltos

Devuelve TRUE si var existe y tiene un valor distinto de NULL, FALSE de lo contrario.

Veamos un ejemplo: $var = ”;// Esto evaluará a TRUE así que el texto se imprimirá. if (isset($var)) { echo “Esta variable está definida, así que se imprimirá”; }

// En los siguientes ejemplo usaremos var_dump para imprimir, el valor devuelto por isset().

$a = “prueba”;
$b = “otraprueba”;

var_dump(isset($a)); // TRUE
var_dump(isset($a, $b)); // TRUE

unset ($a); //destruyo la variable..

var_dump(isset($a)); // FALSE
var_dump(isset($a, $b)); // FALSE

$foo = NULL;
var_dump(isset($foo)); // FALSE

Otro ejemplo con matrices:

$a = array (‘test’ => 1, ‘hello’ => NULL, ‘pie’ => array(‘a’ => ‘apple’));

var_dump(isset($a[‘test’])); // TRUE
var_dump(isset($a[‘foo’])); // FALSE
var_dump(isset($a[‘hello’])); // FALSE

// La clave hello’ es igual a NULL así que no se considera definida
// Si desea comprobar los valores NULL clave, intente:
var_dump(array_key_exists(‘hello’, $a)); // TRUE

// Comprobando valores de arrays con más profunidad
var_dump(isset($a[‘pie’][‘a’])); // TRUE
var_dump(isset($a[‘pie’][‘b’])); // FALSE
var_dump(isset($a[‘cake’][‘a’][‘b’])); // FALSE

Ranking Lenguajes de Programación Febrero 2013

Java recupera la primera posición de este ranking mensual con el que dar una referencia para comprobar si nuestras habilidades de programación siguen estando al día.

28/02/2013 – Finalizado el 2012 con Objetive-C como lenguaje de programación del año con un crecimiento superior a otras alternativas como Visual Basic .NET o Ruby, el ranking de febrero de este nuevo 2013 destaca por la recuperación de Java en lo alto de la clasificación.

La vuelta de Java al liderazgo del ranking, que supone desbancar a C diez meses después, se debe fundamentalmente a la popularidad de la plataforma Android de la que es el lenguaje mayoritario a la hora de programar.

Junto a los buenos datos de Java también destaca el crecimiento de Python, PHP o Ruby.

Ranking Lenguajes de Programación Febrero 2013

Java
C
Objective-C
C++
C#
PHP
Python
(Visual) Basic
Perl
Ruby
JavaScript

La clasificación de cada lenguaje de programación en este ranking basado en el indice TIOBE esta fundamentado en el número de ingenieros cualificados de todo el mundo, cursos y proveedores de terceros. Los motores de búsqueda de Google, Bing, Yahoo!, Wikipedia, Amazon, YouTube y Baidu se utilizan para calcular dichas calificaciones.
fuente.desarrolloweb

Ranking Lenguajes de Programación Septiembre 2012

Sin un cambio destacado sobre el último ranking, el indice TIOBE vuelve a mostrar la popularidad de Visual Basic .NET, lenguaje de programación orientado a objetos considerado como una evolución de Visual Basic e implementada sobre el framework .NET y Objective-C, el lenguaje de programación para el desarrollo de aplicaciones nativas para el sistema operativo móvil iOS.

La irrupción en el mercado de dispositivos como iPhone e iPad ha supuesto que Objective-C, tecnología creada por Brad Cox y la corporación StepStone en 1980 y definida como un lenguaje de programación orientado a objetos creado como un superconjunto de C, haya disparado su popularidad hasta el punto de ser el de mayor crecimiento en en el mundo del desarrollo.

Pese a lo anterior el lenguaje de programación C continua al frente de esta clasificación, aumentando su distancia respecto a Java al que logró superar el pasado mes de abril tras un largo dominio del ranking.

Clasificación Lenguajes de Programación Septiembre 2012

  1. C
  2. Java
  3. Objective-C
  4. C++
  5. C#
  6. PHP
  7. (Visual) Basic
  8. Python
  9. Perl
  10. Ruby
  11. JavaScript

Los datos ofrecidos por el indice TIOBE, base para llevar a cabo clasificación, se apoya en criterios como el número de ingenieros cualificados de todo el mundo, cursos y proveedores de terceros, utilizando los motores de búsqueda de Google, Bing, Yahoo!, Wikipedia, Amazon, YouTube y Baidu para llevar a cabo estos cálculos.

El objetivo de este ranking es ofrecer una referencia para comprobar si nuestras habilidades de programación siguen estando actualizadas, o incluso servir de ayuda a la hora de decidir qué lenguaje de programación aprender o adoptar.

fuente.desarrolloweb

Ranking Lenguajes de Programación Agosto 2012

Objective-C tras superar en popularidad durante el pasado mes a C++, el lenguaje de programación que tanta importancia ha cobrado desde la llegada de dispositivos como iPhone o iPad consolida su tercera plaza en este úlimo ranking.

Por otro lado, C# , lenguaje de programación desarrollado por Microsoft, ha mostrado una tendencia a la baja durante 8 meses que ha sido interpertado por muchos como consecuencia del anuncio de la propia Microsoft de renovar de C++. C# parece ser de un excesivo nivel como para construir sistemas de alto rendimiento, por lo que después de dos años de adopción entusiasta, parece no haber lugar para más crecimiento. Clave en todo lo anterior es lo que suceda con C # en los próximos meses.

Además de lo anterior, destaca la mejora en el ranking de PHP, un lenguaje de programación del lado del servidor y dirigido al desarrollo web que pese a su relevancia había venido perdiento cierto grado de popularidad.

Ranking Lenguajes de Programación Agosto 2012

  1. C
  2. Java
  3. Objective-C
  4. C++
  5. C#
  6. PHP
  7. (Visual) Basic
  8. Python
  9. Perl
  10. Ruby
  11. JavaScript

Como siempre señalar que el indice TIOBE, fuente de los datos que componen esta clasificación, basa sus estadísticas en criterios como el número de ingenieros cualificados de todo el mundo, cursos y proveedores de terceros, utilizando los motores de búsqueda de Google, Bing, Yahoo!, Wikipedia, Amazon, YouTube y Baidu. fuente.desarrollweb

Ranking Lenguajes de Programación Junio 2012

Cumplida la primera mitad del año vuelve a destacar el crecimiento de Objective-C que todo apunta podría convertirse de nuevo en lenguaje de programación de 2012 de la misma forma que ya hiciera en 2011.

Por lo tanto, de seguir la tendencia marcada hasta el momento, Objetive-C gracias al importante número de desarrolladores surgidos tras el interes originado en la creación de apps para dispositivos como iPhone o iPad, volverá a convertirse en el lenguaje con más crecimiento por delante de otras alternativas como C o Visual.NET.

En esta clasificación de junio, C, el lenguaje de programación creado hace 40 años por el recientemente desaparecido Dennis M. Ritchie, muy popular entre aquellos interesados en la creación de software de sistemas aunque también en el desarrollo de aplicaciones, vuelve a consolidar su posición al frente de este ranking. En el lado contrario, PHP, que pese a su relevancia en el desarrollo web pierde una posición y cae hasta el séptimo lugar.

Además de lo anterior, de entre los lenguajes que apuntan podrían llegar a convertirse a medio plazo en las grandes apuestas en el mundo de la programación encontramos a juicio de los responsables del indice TIOBE, alternativas como Scala, Erlang, Clojure y más recientemente Haskell, un lenguaje de programación estandarizado multi-propósito del que puedes encontrar una guía en español desde aprendehaskell.es.

Ranking Lenguajes de Programación Junio 2012

  1. C
  2. Java
  3. C++
  4. Objective-C
  5. C#
  6. (Visual) Basic
  7. PHP
  8. Python
  9. Perl
  10. Ruby
  11. JavaScript
  12. Visual Basic .NET

Esta clasificación está basada entre otros criterios en el número de ingenieros cualificados de todo el mundo, cursos y proveedores de terceros, utilizando los motores de búsqueda de Google, Bing, Yahoo!, Wikipedia, Amazon, YouTube y Baidu para llevar a cabo estos cálculos.
fuente.desarrolloweb

Ranking Lenguajes de Programación Mayo 2012

La popularización de un determinado lenguaje de programación es un proceso lento que raramente sorprende con cambios inmediatos, esto es debido a varias razones como por ejemplo que pese a tratarse de un sector en constane evolución siguie siendo muy difícil migrar una gran base de código de un lenguaje a otro.

No obstante lo anterior si ha habido un lenguaje que ha crecido de forma constante en los últimos años ese es sin duda Objective-C. Las causas que explican esta situación especial responden al importante número de desarrolladores que han mostrado interes en empezar a crear aplicaciones para dos dispositivos móviles tan relevantes hoy en día como iPhone e iPad.

De este último ranking destaca la consolidación de C en lo más alto de este ranking logrando incluso una pequeña ventaja sobre Java que tras varios años de reinado vuelve a perder relevancia, y la aparición en esta clasificación de Visual Basic .NET (VB.NET) un lenguaje de programación orientado a objetos que se puede considerar como una evolución de Visual Basic implementada sobre el framework .NET.

Ranking lenguajes de programación Mayo 2012:

C
Java
C++
Objective-C
C#
PHP
(Visual) Basic
Python
Perl
JavaScript
Ruby
Visual Basic .NET

Esta clasificación con la que medir si nuestras habilidades de programación están actualizadas es realizada a partir de los datos obtenidos en el indice TIOBE, un indicador mensual de la popularidad de lenguajes de programación que se basa en el número de ingenieros cualificados de todo el mundo, cursos y proveedores de terceros y utiliza los motores de búsqueda de Google, Bing, Yahoo!, Wikipedia, Amazon, YouTube y Baidu se utilizan para llevar a cabo estos cálculos.

fuente.desarrolloweb