Ya encontre el problema y es simple, el problema viene si abres directamente la pagina de procesa.php sin haber visitado la pagina de contacto, en esta ocasion $_SESSION['mipass'] esta en blanco porque se acaba de iniciar la session, y si envias el $_POST en blanco tambien coincide y tienes acceso a enviar todas las demas variables del formulario.
Puedes probar este codigo en procesa.php y asi evitar que se salten el captcha.
Código PHP:
<?php
// inicio sesiones
session_start();
$paginaDeContacto = 'http://dominio.com/paginacontacto.php';
if( empty( $_SESSION['mipass'] ) ) {
header( "Location: $paginaDeContacto" );
exit;
}
// Si lo deseas tambien podrias checar de donde viene el usuario...
// Aunque no lo recomiendo pues muchos Firewalls como el Panda luego
// bloquean esta informacion
if( $_SERVER['HTTP_REFERRER' != $paginaDeContacto ) {
header( "Location: $paginaDeContacto" );
exit;
}
if ($_SESSION['mipass'] == $_POST['pass']){
echo "código/contraseña aceptado .. coincide ...";
} else {
echo "Pues el código/contraseña NO coincide ...";
}
// Y nos deshacemos de la sesión ...
unset($_SESSION);
session_destroy();
?>