Página 1 de 1

base64_decode deshabilitado

Publicado: 11 Abr 2013, 00:00
por eddyxv
URL: http://www.theforsakens.es
Plantilla(s) usuada(s): pbwow
MODs instalados: reimg, board3, bowob, pbwow
Versión de phpBB: 3.0.6
Servidor: Skylium (gratuito-p2h)

Hola he visto que había un tema ya abierto (http://www.phpbb-es.com/foro/tema32955.html)sobre este tema pero lleva ya mucho tiempo y me daba advertencia, por lo que he decidido abrir un nuevo tema.
El problema es el hosting en el que estoy hospedado ha decidido deshabilitar base64_decode por seguridad. El error que me sale es el siguiente en el portal, y en los post me sale algo parecido:

Código: Seleccionar todo

[phpBB Debug] PHP Notice: in file /includes/functions_content.php on line 1281: base64_decode() has been disabled for security reasons
[phpBB Debug] PHP Notice: in file /includes/functions_content.php on line 1281: base64_decode() has been disabled for security reasons
[phpBB Debug] PHP Notice: in file /includes/functions_content.php on line 1281: base64_decode() has been disabled for security reasons
[phpBB Debug] PHP Notice: in file /includes/functions_content.php on line 1281: base64_decode() has been disabled for security reasons
[phpBB Debug] PHP Notice: in file /includes/functions_content.php on line 1281: base64_decode() has been disabled for security reasons
[phpBB Debug] PHP Notice: in file /includes/functions_content.php on line 1281: base64_decode() has been disabled for security reasons
[phpBB Debug] PHP Notice: in file /includes/functions_content.php on line 1281: base64_decode() has been disabled for security reasons
[phpBB Debug] PHP Notice: in file /includes/functions_content.php on line 1281: base64_decode() has been disabled for security reasons
[phpBB Debug] PHP Notice: in file /includes/functions_content.php on line 1281: base64_decode() has been disabled for security reasons
[phpBB Debug] PHP Notice: in file /includes/functions_content.php on line 1281: base64_decode() has been disabled for security reasons
[phpBB Debug] PHP Notice: in file /includes/functions_content.php on line 1281: base64_decode() has been disabled for security reasons
[phpBB Debug] PHP Notice: in file /includes/functions.php on line 4239: Cannot modify header information - headers already sent by (output started at /includes/functions.php:3494)
[phpBB Debug] PHP Notice: in file /includes/functions.php on line 4241: Cannot modify header information - headers already sent by (output started at /includes/functions.php:3494)
[phpBB Debug] PHP Notice: in file /includes/functions.php on line 4242: Cannot modify header information - headers already sent by (output started at /includes/functions.php:3494)
[phpBB Debug] PHP Notice: in file /includes/functions.php on line 4243: Cannot modify header information - headers already sent by (output started at /includes/functions.php:3494)
He visto que el user pduthey en el post que linkee más arriba logró una solución para el tema, pero al ver que varió después algunas cosas y leviatan21 le dio otros consejos para mejorarlo me quedé un poco perdido...>.<
Así que me gustaría que me ayudarais si es posible a implementar esto en mi foro ya que de la noche a la mañana se me ha vuelto un dolor de cabeza ya que soy novel en esto...xD

PD: Espero que esté bien posteado en soporte, si no es así moverlo por favor.. :)

Gracias y un saludo

Re: base64_decode deshabilitado  Tema Solucionado

Publicado: 11 Abr 2013, 00:42
por leviatan21
Lo ideal es adicionar una función homónima en un archivo común del foro, de ahi mi sugerencia sobre ser menos invasivo.

Lo que deberías hacer es :

Abrir:

Código: Seleccionar todo

raíz/common.php
Buscar:

Código: Seleccionar todo

 ?> 
Antes, agregar:

Código: Seleccionar todo

/**
* mi_base64_decode()
*/

//* Funcion Decode Base64 en PHP
if (!function_exists('mi_base64_decode')) {
  function mi_base64_decode($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;
      }
  }
}

Re: base64_decode deshabilitado

Publicado: 11 Abr 2013, 01:18
por eddyxv
¿Qué código es el que tengo que buscar?
Y sería solo eso?¿

Muchísimas gracias..>.<

Re: base64_decode deshabilitado

Publicado: 11 Abr 2013, 01:42
por leviatan21
En realiad es ir abajo de todo y antes de la última linea que es ?> agregar la funcion
Ahi lo corregí, al parecer el bbcode code con la sintaxis php jugó encontra.

Re: base64_decode deshabilitado

Publicado: 11 Abr 2013, 02:00
por eddyxv
Ya lo agregué y sigue igual... alguna sugerencia? :(

Gracias por todo y disculpa que moleste tanto..

Re: base64_decode deshabilitado

Publicado: 11 Abr 2013, 02:18
por leviatan21
Como cito en el tema anterior, esta es la lista de archivos donde se llama a la función base64_decode() de php

Lo que te sugiero que hagas es abrir esos archivos y buscar la palabra base64_decode reemplazándolo por mi_base64_decode

Código: Seleccionar todo

raíz/cron.php
echo base64_decode('R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==');

raíz/search.php	
$bbcode_bitfield = $bbcode_bitfield | base64_decode($row['bbcode_bitfield']);

raíz/viewtopic.php
$bbcode_bitfield = $bbcode_bitfield | base64_decode($row['bbcode_bitfield']);

raíz/viewtopic.php
$bbcode_bitfield = $bbcode_bitfield | base64_decode($row['user_sig_bbcode_bitfield']);

raíz/includes/functions.php
list($username, $password) = explode(':', base64_decode(substr($username, 6)), 2);

raíz/includes/functions_content.php
$this->data = base64_decode($bitfield);

raíz/includes/functions_jabber.php
$decoded = base64_decode($xml['challenge'][0]['#']);

raíz/includes/functions_messenger.php
$md5_challenge = base64_decode($this->responses[0]);

raíz/includes/functions_messenger.php
$md5_challenge = base64_decode($this->responses[0]);

raíz/includes/functions_posting.php
$bbcode_bitfield = $bbcode_bitfield | base64_decode($row['bbcode_bitfield']);

raíz/includes/functions_privmsgs.php	
$bbcode_bitfield = $bbcode_bitfield | base64_decode($row['bbcode_bitfield']);

raíz/includes/message_parser.php
$bbcode_bitfield = base64_encode(base64_decode($bbcode_bitfield) | base64_decode($this->bbcode_bitfield));

raíz/includes/message_parser.php		
$bbcode_bitfield = base64_encode(base64_decode($bbcode_bitfield) | base64_decode($this->bbcode_bitfield));		

raíz/includes/message_parser.php
$this->bbcode_bitfield = base64_encode(base64_decode($bbcode_bitfield) | base64_decode($this->bbcode_bitfield));

raíz/includes/message_parser.php
$this->bbcode_bitfield = base64_encode(base64_decode($bbcode_bitfield) | base64_decode($this->bbcode_bitfield));

raíz/includes/captcha/captcha_non_gd.php
$hold_chars[$char] = str_split(base64_decode($this->filtered_pngs[$char]['data']), $raw_width + 1);

raíz/includes/cp/mcp_topic.php	
$bbcode_bitfield = $bbcode_bitfield | base64_decode($row['bbcode_bitfield']);
Y si tienes el Support ToolKit (STK)

Código: Seleccionar todo

raíz/stk/includes/admin/reparse_bbcode.php		
$this->message_parser->bbcode_bitfield = base64_encode(base64_decode($this->poll_parser->bbcode_bitfield) | base64_decode($this->message_parser->bbcode_bitfield));

Re: base64_decode deshabilitado

Publicado: 11 Abr 2013, 03:20
por eddyxv
Vale ya me ha funcionado, una vez más te agradezco muchísimo por lo que hacéis. Un saludo y espero no daros más trabajo..>.<

PD: Solucionado