base64_decode() has been disabled for security reasons
Publicado: 30 Jul 2011, 05:46
Hola Gente!!
no recuerdo si este es mi primer posteo, por las dudas me presento, soy Pablo de Mar del Plata, Argentina y administro varios sitios con distintos gestores de foros, en este caso:
URL: http://www.mdq4x4.com.ar/foro/
Plantilla(s) usuada(s): subsilver2
MODs instalados: ninguno
Versión de phpBB: 3.0.7-PL1
Servidor: http://www.sectorhosting.com/ (pago)
me encontré con un problema cuando el administrador del servicio de Hosting decidió por seguridad deshabilitar la función de PHP base64_decode(), con esto dejo de andar el PHPBB y el foro no se veía bien ya que al dar errores no cargaba los css, deshabilité los errores y lo veía mejor pero no se reemplazaban las etiquetas PHPBB por su correspondiente función.
Primera solución, buscar en este foro, pero no encontré nada
Segunda solución, hacer entender al admin del hosting que necesitaba esa función, no hubo caso, todavía estoy esperando... tuvo ataques de troyanos eval(base64_decode... y hasta que no lo solucionen queda deshabilitado.
Tercera solución, reescribir esa función a mano y reemplazarla donde se utilizara, googlee pero no encontré nada hecho en PHP, supongo que es porque ya es una función del lenguaje y nadie se le ocurriría reescribirla, encontré una C y la "adapté" a PHP, tuve que cambiarla bastante, el C estaba muy bien utilizado por lo tanto no era fácil de "traducir", me quedó así:
Luego para incluirla quise agregarla en algun código de los de funciones pero se complicaba en cual y en algunos casos la función base64_decode() se usaba en los mismos archivos de funciones por lo cual hacer un include me daba error en algunos otros lados al encontrar una doble definición de la función por lo tanto copié la función en cada .php que la necesitaba y por las dudas con un nombre distinto por si ese archivo era incluido en otro, los que toqué fueron hasta ahora
/viewtopic.php
/includes/functions_content.php
/includes/functions_posting.php
/includes/functions_privmsgs.php
con esos hasta ahora me alcanzó no se si deberé agregarla a algun lugar mas si lo encuentro lo haré.
Espero que les sirva para salir del paso.
no recuerdo si este es mi primer posteo, por las dudas me presento, soy Pablo de Mar del Plata, Argentina y administro varios sitios con distintos gestores de foros, en este caso:
URL: http://www.mdq4x4.com.ar/foro/
Plantilla(s) usuada(s): subsilver2
MODs instalados: ninguno
Versión de phpBB: 3.0.7-PL1
Servidor: http://www.sectorhosting.com/ (pago)
me encontré con un problema cuando el administrador del servicio de Hosting decidió por seguridad deshabilitar la función de PHP base64_decode(), con esto dejo de andar el PHPBB y el foro no se veía bien ya que al dar errores no cargaba los css, deshabilité los errores y lo veía mejor pero no se reemplazaban las etiquetas PHPBB por su correspondiente función.
Primera solución, buscar en este foro, pero no encontré nada

Segunda solución, hacer entender al admin del hosting que necesitaba esa función, no hubo caso, todavía estoy esperando... tuvo ataques de troyanos eval(base64_decode... y hasta que no lo solucionen queda deshabilitado.
Tercera solución, reescribir esa función a mano y reemplazarla donde se utilizara, googlee pero no encontré nada hecho en PHP, supongo que es porque ya es una función del lenguaje y nadie se le ocurriría reescribirla, encontré una C y la "adapté" a PHP, tuve que cambiarla bastante, el C estaba muy bien utilizado por lo tanto no era fácil de "traducir", me quedó así:
Código: Seleccionar todo
<?php
//* Funcion Decode Base64 en PHP
function decode64($encStr) {
$base64s = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
$decOut = "" ;
$i = 0 ;
for ($i=0; $i < strlen($encStr); $i+=4) {
$bits = str_pad(decbin(strpos($base64s, $encStr[$i])),6,"0",STR_PAD_LEFT).str_pad(decbin(strpos($base64s, $encStr[$i+1])),6,"0",STR_PAD_LEFT).str_pad(decbin(strpos($base64s, $encStr[$i+2])),6,"0",STR_PAD_LEFT).str_pad(decbin(strpos($base64s, $encStr[$i+3])),6,"0",STR_PAD_LEFT);
$decOut .= chr(bindec(substr($bits,0,8))).chr(bindec(substr($bits,8,8))).chr(bindec(substr($bits,16,8)));
}
if (ord($encStr[$i-2]) == 61) {
return substr($decOut, 0, strlen($decOut)-2);
}
else
if (ord($encStr[$i-1]) == 61) {
return substr($decOut, 0, strlen($decOut)-1);
}
else {
return $decOut;
}
}
?>
/viewtopic.php
/includes/functions_content.php
/includes/functions_posting.php
/includes/functions_privmsgs.php
con esos hasta ahora me alcanzó no se si deberé agregarla a algun lugar mas si lo encuentro lo haré.
Espero que les sirva para salir del paso.
