miércoles, 3 de abril de 2013

Hoy en AyudaWordPress.com

Hoy en AyudaWordPress.com

Link to Ayuda WordPress

iframe y embed en WordPress Multisitio

Posted: 03 Apr 2013 03:26 PM PDT

imagen de red wordpress multisitio

Si tienes una instalación de WordPress Multisitio ya estarás disfrutando de sus posibilidades, pero debes saber que tiene sus pegas, cómo por ejemplo que tiene algunas restricciones de seguridad, al estilo de lo que pasa en WordPress.com, que, por ejemplo, impiden que los usuarios normales (todo el que no sea Administrador de la Red) puedan insertar códigos en las entradas, me refiero a embeds e iframes.

Afortunadamente se puede solucionar …

Esto pasa porque el uso de scripts en las entradas es un riesgo potencial de seguridad, porque cualquier usuario podría insertar código malicioso en entradas y comprometer toda la red del WordPress Multisitio. Esto, que en un WordPress unitario no es problema normalmente, en Multisitio, donde se permite crear blogs a casi cualquiera puede ser un asunto crítico, de ahí la restricción.

En definitiva, lo que pasa es que si usas un código embed o iframe (y casi cualquier script) en el editor de texto (HTML) al guardar la entrada desaparece, con lo que no mostrará nada.

¿Soluciones?

Pues ya hemos visto en el pasado cómo hacerlo a la brava, pero vaya, vamos a repasar las distintas posibilidades:

  1. Usar plugins para permitir insertar vídeo en WordPress Multisitio. No es la mejor opción, porque en ocasiones requiere de usar shortodes y muchos de ellos solo sirven para vídeo, así que servicios cómo issuu.com o similares quedarían fuera. En el artículo que te enlazo tienes varios posibles.
  2. Otra posibilidad es editar el fichero kses.php situado en la carpeta wp-includes. En la línea 50 más o menos encontrarás unas líneas que ponen esto:
    	/**  	 * Kses global for default allowable HTML tags.  	 *  	 * Can be override by using CUSTOM_TAGS constant.  	 *  	 * @global array $allowedposttags  	 * @since 2.0.0  	 */  	$allowedposttags = array(  		'address' => array(),  		'a' => array(  			'href' => true,  			'rel' => true,  			'rev' => true,  			'name' => true,  			'target' => true,  		),

    En estas líneas y las siguientes están las tags HTML permitidas por defecto en WordPress, que puedes borrar, para desactivarlas, o añadir nuevas. Pues bien, en este caso la idea sería añadir unas nuevas al final de la lista existente, que serían estas:

    'embed' => array (      'style' => array (),      'type' => array (),      'id' => array (),      'height' => array (),      'width' => array (),      'src' => array ()),  'object' => array (      'height' => array (),      'width' => array ()),      'param' => array (      'name' => array (),      'value' => array ()),      'object' => array(      'width' => array (),      'height' => array (),      'movie' => array (),      'allowFullScreen' => array (),      'embed src' => array(),  'iframe' => array (      'height' => array (),      'width' => array ()),      'param' => array (      'name' => array (),      'value' => array ()),      'frameborder' => array (),      'allowFullScreen' => array (),      'application/x-shockwave-flash' => array()),

    Pero no, esta opción no es recomendable, porque ya sabes que nunca hay que modificar ficheros “core porque se perderían al actualizar.

  3. También podemos, mucho más recomendable, crear un plugin WordPress con un código que se salte la restricción, o si lo prefieres crear un plugin de funciones y le añades el código, que sería así:
    //Permite insertar embeds e iframes en Multisitio  $allowedposttags["iframe"] = array(   "src" => array(),   "height" => array(),   "width" => array()  );  $allowedposttags["object"] = array(   "height" => array(),   "width" => array()  );  $allowedposttags["param"] = array(   "name" => array(),   "value" => array()  );  $allowedposttags["embed"] = array(   "src" => array(),   "type" => array(),   "allowfullscreen" => array(),   "allowscriptaccess" => array(),   "height" => array(),   "width" => array()  );

    Es una solución más limpia y elegante.

Cómo ves, posibilidades de solucionarlo hay, ahora bien, recuerda que con este tipo de cosas estás abriendo tu red multisitio a una posible vulnerabilidad al permitir scripts, así que úsalo con responsabilidad.

No hay comentarios:

Publicar un comentario

Seguidores

Archivo del blog