OVH Community, your new community space.

Captcha a nivel de server par proteger ciertos directorios


oceano
06/09/2013, 14:11
Hola Sdzzds, buenas tardes !

Pensaba te referías directamente a algún proyecto tuyo...

Bueno, ya puestos, podrías explicar más adelante el proceso que has seguido ? Lo veo interesante, quizá pueda serme de mucha utilidad !


Muchas gracias.


Un saludo !

sdzzds
06/09/2013, 12:33
Cita Publicado inicialmente por manoleet
Eso sí parece que es lo que busco, muchas gracias manoleet!!

manoleet
06/09/2013, 11:18
Has mirado http://search.cpan.org/~analog/Apach...2/reCaptcha.pm ?

sdzzds
06/09/2013, 09:48
Hola Oceano,

Gracias por la aportación, pero no es lo que busco, este código necesita modificar los archivos index o los templates de los sitios (insertando la primera linea).

Yo lo que busco es poder mostrar un captcha sin tener que modificar el código de las webs alojadas. Si alguien sabe alguna otra solución que la aporte. Gracias!

oceano
05/09/2013, 18:55
Hola, buenas tardes.

Bueno, he encontrado algo por ahí, pegaré el código como dicen es el error solucionado, por si en algún momento puede ayudar a alguien más.

En local dice el creador funciona.

No lo he probado, pero tiene bastante buena pinta...

#Dentro del head
Código:

#archivo
security_code.php
Código:
header('Content-Type: image/jpeg');
session_start();
class captchaGD {   
public $font='arial.ttf';
public function generateCode($characters) {
    $possible = '23456789bcdfghjkmnpqrstvwxyzBCDFGHJKMNPQRSTVWXYZ';
    $code = '';
    $i = 0;
    while ($i < $characters) {
        $code .= substr($possible, mt_rand(0, strlen($possible)-1), 1);
        $i++;
    }
    return $code;
}
function __construct($width='120',$height='40',$characters='6') {
    $code = $this->generateCode($characters);
    $font_size = $height * 0.5;
    $image = imagecreate($width, $height) or die('Cannot initialize new GD image stream');
    $background_color = imagecolorallocate($image, 255, 255, 255);
    $text_color = imagecolorallocate($image, 20, 40, 100);
    $noise_color = imagecolorallocate($image, 100, 120, 180);
    for( $i=0; $i<($width*$height)/3; $i++ ) {
        imagefilledellipse($image, mt_rand(0,$width), mt_rand(0,$height), 1, 1, $noise_color);
    for( $i=0; $i<($width*$height)/200; $i++ ) {
        imageline($image, mt_rand(0,$width), mt_rand(0,$height), mt_rand(0,$width), mt_rand(0,$height), $noise_color);
    }
    $textbox = imagettfbbox($font_size, 0, $this->font, $code) or die('Error in imagettfbbox function');
    $x = ($width - $textbox[4])/2;
    $y = ($height - $textbox[5])/2;
    imagettftext($image, $font_size, 0, $x, $y, $text_color, $this->font , $code) or die('Error in imagettftext function');
    imagejpeg($image); 
    imagedestroy($image);
        $_SESSION['security_code']['form']="";
        $_SESSION['security_code']['form'] = strtolower($code); 
}
}
$width =  '120';
$height = '40';
$characters = '3';
$captcha = new captchaGD($width,$height,$characters,$_SERVER['REQUEST_URI']);
Deseo pueda ayudarte !

Autor: Navid
Nota: Fuente http://stackoverflow.com/questions/1...utside-of-root

Un saludo !

Macf
05/09/2013, 18:08
Yo diría que tendrías que hacerlo por php, igual alguien sabe una manera mas fácil.

sdzzds
05/09/2013, 17:34
Hola,

Me gustaria saber cómo poner un captcha a nivel de servidor de tal forma que pueda configurar en qué carpetas dentro del /home se va a mostrar.

Es decir, poder proteger los directorios de algunos cms por ataques de bots e implementar un captcha obligatorio paa todos, a nivel de servidor.

Si alguien sabe cómo hacerlo le estaré eternamente agradecido.

Saludos.