Archive for the ‘Uncategorized’ Category

Instalación de Zend Framework

Monday, March 23rd, 2009

Descargue la última versión de Zend. En los ejemplos siguientes se supondrá que el framework se encuentra en directorio /home/galactus/zend/.

cd /home/galactus/php
wget -c http://framework.zend.com/releases/ZendFramework-1.5.2/ZendFramework-1.5.2.tar.gz
tar xzf ZendFramework-1.5.2.tar.gz
ln -s ZendFramework-1.5.2 zend

En los ejemplos se habilitará el acceso al framework con:

<?
set_include_path(get_include_path() . ':/home/galactus/php/zend/library');

Lo usual sería configurar esta ruta en el archivo php.ini.

Leer un Feed Atom

En este ejemplo se lee un Feed Atom con ayuda de Zend.

<?
  // Ver: http://code.google.com/p/eltiempo-api/wiki/EjemplosPHP

  error_reporting(E_ALL); // Depuración

  set_include_path(get_include_path() . ':/home/galactus/php/zend/library/');

  require_once 'Zend/Feed.php';

  try
  {
    $feed = Zend_Feed::import('http://api.eltiempo.com/1.0/eltiempo/estadisticas/votos.xml?llave=0--llave_temporal--no_usar--registre_una--0&fecha=2008-06-12');
  }
  catch (Zend_Feed_Exception $e) {
    die("Excepción importando el feed: {$e->getMessage()}\n");
  }

  Header('Content-type: text/plain; charset=utf-8'); // http://www.w3.org/International/O-HTTP-charset

  echo $feed->title() . "\n\n";

  foreach ($feed as $entrada)
  {
    echo 'ID => ' . $entrada->id() . "\n";
    echo 'Titulo => ' . $entrada->title() . "\n";
    echo 'Resumen => ' . $entrada->summary() . "\n";
    echo 'Link =>' . $entrada->link('alternate') . "\n\n";
  }
?>

Posted in Uncategorized | No Comments »

Integración de Google Calendar con PHP Parte 3. Recuperar eventos agendados con Zend GData Client Library

Monday, March 23rd, 2009

Mientras la autenticación con magic cookie es ciertamente conveniente, no es muy práctica para aplicaciones completas con PHP, por dos razones:

• Permite acceso de sólo lectura al feed del calendario.
• No está disponible para todas las operaciones del calendario.

Para hacer algo realmente sustancial con la API del Calendar Data, es necesario que añadas la autenticación del usuario a tu aplicación utilizando uno de los dos métodos de autenticación aprobados por Google: ( AuthSub or ClientLogin.)

Realizar este tipo de autenticación manualmente es una tarea en la que fácilmente se pueden producir desordenes, y requiere una buena cantidad de código para incluir los distintos escenarios que podrían darse durante una transacción de autenticación típica. Afortunadamente, no es necesario que te preocupes demasiado por todo esto:

Este aplicativo, diseñado especialmente para programadores que tratan de integrar las APIs de Google Data con las aplicaciones de PHP, puede manejar todos los detalles por vos. Esta librería, que puede descargarse separadamente, provee una conveniente interfaz orientada al objeto para las APIs de Google Data, conteniendo la gran mayoría de tareas (incluyendo aquí, por supuesto, la autenticación). Así, uno es libre de concentrarse en las funciones centrales de sus aplicaciones.

El siguiente ejemplo lo demuestra, reempleando la funcionalidad del caso presentado en el artículo previo (Recuperar eventos agendados con SimpleXML) mientras usamos el Zend GData Client Library:

En el ejemplo, primero se cargan la librerías de clase Zend, y luego se inicia una instancia de clase Zend_Http_Client. Ahora este cliente está provisto con la necesaria autentificación de usuario y puede abrir una conexión autentificada con el servicio de Calendar. Una vez que una de estas conexiones es abierta, el método getCalendarEventFeed() recupera el feed del calendario. Este método también acepta objetos EventQuery, los cuales están configurados con varios parámetros: el nombre de usuario, el tipo de feed (público o privado) y el nivel de detalle requerido en el feed (completo o básico). La respuesta a la API getCalendarEventFeed() es presentada como una documento XML, el cual luego es parseado y convertido en un objeto PHP. Ahora es un problema sencillo recuperar esta información a través de las propiedades del objeto y usarlas para generar páginas HTML.

Fuente: http://www.elguruprogramador.com.ar/articulos/integracion-de-google-calendar-con-php-parte-3-recuperar-eventos-agendados-con-zend-gdata-client-library-.htm

Instalar Zend Debugger para PHP

Monday, March 23rd, 2009

La extensión de PHP Zend Debugger sirve para darle a nuestro servidor capacidades de debugging: hacer debug de aplicaciones PHP en el servidor.
22/8/08 – Uno de los pasos para proveer a nuestro servidor de PHP la posibilidad de hacer debug de aplicaciones creadas con PHP es instalar el Zend Debugger, una extensión para PHP que podemos obtener de manera gratuita. En este artículo veremos paso a paso la receta para conseguir instalar Zend Debugger.

El Zend Debugger lo vamos a utilizar en conjunto con el IDE para desarrollo de aplicaciones en PHP PDT, que es una distribución de Eclipse preparada con todos los módulos para poder programar en PHP. Anteriormente ya publicamos un artículo sobre cómo instalar PDT, que deberemos leer también en algún momento.

Primero, veamos el lugar donde conseguir el Zend Debugger: http://downloads.zend.com/pdt/server-debugger/

En esa página podremos ver varias distribuciones del programa para debug en el servidor de aplicaciones PHP. Tenemos que escoger la que sea adecuada para nuestro sistema operativo.

En mi caso, lo he instalado sobre Windows, en mi servidor para desarrollo local. He descargado entonces la primera opción ZendDebugger-5.2.14-cygwin_nt-i386.zip. Es un archivo comprimido que, si abrimos, veremos que tiene varias carpetas, con el debugger para varias versiones de PHP distintas. Tenemos que escoger la que nos corresponda conforme al servidor PHP que tengamos instalado. Por ejemplo, para mi PHP 5.2.6 tengo que utilizar la carpeta 5_2_x_comp.

Dentro hay un DLL, en el caso de Windows, que se tiene que copiar y pegar en el directorio donde están las extensiones de PHP del servidor. Este directorio lo podemos ver mediante un phpinfo(), que muestra la información completa sobre la instalación de nuestro PHP.

Para hacer este phpinfo(), si no lo sabes, tienes que crear un archivo en el directorio de publicación de páginas de tu servidor con el siguiente código:

<?php
phpinfo();
?>

Luego ejecutas ese archivo desde tu servidor local. Algo como http://localhost/phpinfo.php

Verás, entre la información que contiene, algo como esto:

Nota: Por facilitarme la vida, en mi ordenador local he instalado PHP por medio de Wamp Server, que instala de una vez todo lo necesario para trabajar con PHP. Tenemos descrito este proceso en nuestro artículo Instalar PHP 5 fácilmente.

Así pues, en el paso anterior hemos debido copiar el archivo ZendDebugger.dll (en el caso de Windows) en el directorio de extensiones de PHP que tengamos marcado al ver las características de nuestro PHP con phpinfo(). En mi caso he colocado el archivo dll en el directorio c:/wamp/bin/php/php5.2.6/ext/

El siguiente paso será colocar en el php.ini unas líneas para iniciar el Zend Debugger cuando se trabaje con PHP. Esas líneas de código las podemos ver en el archivo descargado del Zend Debugger, en el README.TXT.

El archivo php.ini de nuestro PHP también se puede localizar mediante el phpinfo(), donde aparece en la siguiente imagen:

De todos modos, para que se vea claro, las líneas que debes colocar en el php.ini, son las siguientes:

[Zend]
zend_extension_ts=[AQUÍ LA RUTA COMPLETA A LA DLL]
zend_debugger.allow_hosts=[AQUÍ LAS IPS DONDE DESEAMOS PERMITIR EL DEBUG]
zend_debugger.expose_remotely=always

Las líneas de configuración las podemos colocar en cualquier lugar del archivo php.ini, por ejemplo abajo del todo. Deberías personalizarlas para tu caso y quedaría con algo como esto:

[Zend]
zend_extension_ts=c:/wamp/bin/php/php5.2.6/ext/ZendDebugger.dll
zend_debugger.allow_hosts=127.0.0.1, 192.168.0.136
zend_debugger.expose_remotely=always

Como se puede ver, he colocado la ruta completa a la librería del Zend Debugger y luego una lista de Ips desde la que permitimos las conexiones para debug. La IP 127.0.0.1 es la dirección IP de localhost, que siempre es esa para todos los equipos. Es para decirle que permita debug desde el propio servidor donde tenemos PHP. Y luego, para asegurarme que funciona, he colocado 192.168.0.136 que es la IP de mi ordenador en mi red local, donde tengo el servidor PHP.

Luego tenemos que hacer, según el README.TXT, otro paso, que es colocar el archivo dummy.php, que viene en el fichero comprimido que hemos descargado antes, en la carpeta raíz de publicación del servidor web. Este paso yo me lo salté y aun así me funcionó, pero bueno.

En el PHP.ini nos recomiendan, según una documentación que he leído de PDT, alterar un par de configuraciones. Estas las comento por si acaso pudieran ser de utilidad o necesarias para nuestros casos, pero también me las he saltado y he podido hacer el debug PHP con PDT sin problemas.

implicit_flush = On
output_buffering = 0

Una vez hemos realizado estos pasos, debemos reiniciar el servidor PHP, es decir, reiniciar Apache o lo que tengamos como servidor, para que los cambios realizados en el php.ini se pongan en marcha.

Después de reiniciar el servidor debemos fijarnos que el Zend Debugger está funcionando, que podemos verlo en el phpinfo(). Debe aparecer un texto como este:

Si no aparece ese texto, es que no está funcionando el Zend Debugger, por lo que algo hemos debido hacer mal en la instalación. Revisar los distintos pasos, fijándonos bien en el directorio donde hemos colocado la extensión de Zend Debugger (la ZendDebugger.dll en el caso de Windows) y la ruta de la extensión escrita en el php.ini.

Fuente: http://www.desarrolloweb.com/articulos/instalar-zend-debugger-para-php.html

Clase para generar log de intentos de defacing, XSS, RFI, SQL I.

Monday, March 23rd, 2009

Esta es una clase que genera un log, mandamos llamar la clase donde necesitemos general el log de las acciones realisadas pore los usuarios, como por ejemplo en un sistema de logeo.

Soportada para php4 y php 5, metodo para poder ver la IP real del usuario la cual aprendi por el articulo de nitr0us de la ezine 5 de RTM.

Código:
<?php
// By Molder: molder@mexican-mafia.org
// www.tenochtitlanbyte.org

$_Log 200;
define("LOG_SUCCESS",         $_Log++);
define("ATACK_DETECT",         $_Log++);

$XSS         = array(">""<""&lt;""&gt;");
$SQL_INJECTION   = array("=\'""= \'","='","= '""\/\*\*\/"," and "" or ""\\'");
$RFI         = array("=http://");

class LOG_ERROR
{

   
   function LOG_ERROR()
   {
      $this->Init();
   }
   
   function Init()
   {
   }
   
   
   function IP_REAL()
   {
      if (isset($_SERVER))
      {
         if (isset($_SERVER["HTTP_X_FORWARDED_FOR"]))
            return $_SERVER["HTTP_X_FORWARDED_FOR"];
         if (isset($_SERVER["HTTP_CLIENT_IP"]))
            return $_SERVER["HTTP_CLIENT_IP"];
         
         return $_SERVER["REMOTE_ADDR"];
      }
      
      if (getenv('HTTP_X_FORWARDED_FOR'))
         return getenv('HTTP_X_FORWARDED_FOR');
      if (getenv('HTTP_CLIENT_IP'))
         return getenv('HTTP_CLIENT_IP');
      
      return getenv('REMOTE_ADDR');
   }
   
   function ValidaURL()
   {
      global $RFI;
      $tags '('.implode($RFI')|(').')';

      if (eregi($tagsurlencode($_SERVER['REQUEST_URI'])) || eregi($tagsurldecode($_SERVER['REQUEST_URI'])))
      {
            return "RFI: [".$_SERVER['REQUEST_URI']."]";
      }
      
      return LOG_SUCCESS;
   }
   

   
   function ValidaINYECCIONES($variables)
   {
      if($variables == "")
      {
         return LOG_SUCCESS;
      }
      
      global $SQL_INJECTION;
      global $XSS;
   
      
      foreach($variables as $campo => $valor)
      {
         if(!empty($valor))
         {
            $tags '('.implode($SQL_INJECTION')|(').')';
            
            if (eregi($tagsurldecode($valor)) || eregi($tagsurldecode($valor)))
            {
               return "SQL INJECTION:[$campo][".htmlentities($valor)."]";
            }
                  
            
            $tags '('.implode($XSS')|(').')';
            
            
            if (eregi($tagsurlencode($valor)) || eregi($tagsurldecode($valor)))
            {
               return "XSS:[$campo][".htmlentities($valor)."]";
            }

         }
      }
      
      
      return LOG_SUCCESS;
   }
   
   
   function LogsError($seccion$variables)
   {
      switch($seccion)
      {
         case 'URL':
            $result $this->ValidaURL();
            break;
         default:
            $result $this->ValidaINYECCIONES($variables);
            break;
      }
      
      
      if($result != LOG_SUCCESS)
      {
         $nvoregistro = array(      
                     'fecha'      =>   date('Y-m-d'),
                     'hora'      =>   date('H:i:s'),
                     'ip'      =>   $this->IP_REAL(),
                     'seccion'   =>   $seccion,
                     'error'      =>   addslashes($result)
                     );
         
                                               //Aki estan los resultados del Log, guardar como mejor paresca.

         return $result;
       
      }
   }
}

$MyLog = new LOG_ERROR;

$MyLog->LogsError('URL''')//ejemplo RFI

$variables =  arry("usuario" => $_POST['usuario'],"password" =>$_POST['password']);

$MyLog->LogsError('Login'$variables)//ejemplo 2

Fuente: https://www.underground.org.mx/index.php?topic=22015.msg120232

PHP-mySQL Documentacion PHP

Monday, March 23rd, 2009

Instalacion en Servidores: Instalacion en Multimania

Bueno para empezar, tendremos que darnos de alta en multimania.com, por ahi se les va a complicar con el frances pero les digo mas o menos asi se guian, entrar a la web, en la barra izquierda a lo ultimo dice ESPACE MEMBRE, entren ahi y les mostrara ota pagina en donde tienen que darce como nuevos usuarios, para esto hacer click en: Rejoignez MultiMania, bueno completanto el formulario, registracion y demas, cuando los de de alta, vuelvan a entrar poniendo su nombre se usuario y clave y activen el php y mysql en donde dice:

Je veux souscrire au service PHP, (tildarlo) y en donde dice:

Et activer ma base MYSQL, (tildarlo)

Y listo estan activado el PHP y el MYSQL, en donde ahora lo que tienen que hacer es entrar al ftp con su programa de ftp favorito, con la dir:

ftp:ftp.multimania.fr, (tunombredeusuario) y (tucontraseña), luego subir el phpmyadmin (que lo podes encontrar el phpmyadmin.sourceforget.net, seguir los pasos para configurarlo que se encuentra en la seccion de Instalacion en diferentes servidores gratis/PHPMYADMIN, y despues subir los archivos del PHP NUKE, osea el contenido del directorio HTML no todo con el HTML y todo, sino el “contenido”. Despues tendran que editar el archivo config.php que hay que modificarles los siguientes datos:

“$dbhost = “localhost”;” Dejenlo como esta en multimania

“$dbuname = “root”;” En este lugar pondran el nombre de usuario de la “base de datos” no la del sitio por si es distinta

“$dbpass = “”;” En este lugar pondran la contraseña de la “base de datos” no la del sitio por si es distinta

“$dbname = “ejemplo_db”;” En este lugar pondran el nombre de la base de datos (que siempre es la del nombre del sitio + _db, ejemplo : ejemplo_db

“$system = 0;”

“$prefix = nuke;”

Luego lo unico que queda por hacer es volver a subir el archivo config.php ya que lo modificamos. Despues si todo salio bien, y si hicieron bien el tema de subir el archivo nuke.sql entrando por donde ya lo mencione anteriormente no tendria que haber problemas. Para probar la pagina, basta con poner la direccion de la pagina osea ejemplo:

www.multimania.com/nombredetuweb

Fuente: http://www.programatium.com/php/phpnukemultimania.htm

PHP-mySQL Documentacion PHP

Monday, March 23rd, 2009

Instalacion en Servidores: Instalacion en Freedom2surf

Bueno para empezar, tendremos que darnos de alta en f2s en la parte de freewebhosting, luego que obtengamos el nombre de usuario y contraseña, entraremos en la parte de alta de base de datos, para esto nos vamos a TOOLS, dentro encontraremos un link que dice ADD DATABASE, seguimos todos los pasos, hasta que nos pida un nombre de usuario y contraseña de la base de datos (casi siempre es la mismas que el nombre de la pagina). Tendremos que esperar 24hs. para que la den de alta, luego en el MENU PRINCIPAL en donde hay varios items, encontraremos uno nuevo DATABASE, en este tendremos que entrar por un link que tiene al final de la pagina, que nos dirigira hacia el PHPMYADMIN propio de ellos para poder subir el archivo nuke.sql o para poder copiar el contenido del nuke.sql y pegarlo en otro casillero. (vean como se instala el archivo nuke.sql en la seccion PHPMYADMIN de instalaciones.

Luego nos subiremos los archivos correspondientes a el PHPNUKE que se encuentran en el directorio HTML del paquete que se baja.Entraremos al ftp de la cuenta que crearon y copiaremos todo el “contenido” del directorio html no el html entero sino el “contenido”, esto demora bastante, depende la conexion a internet que tengan, de ahi se van al archivo de configuracion del PHPNUKE, el config.php, lo editan, y buscan la parte de configuracion de la base de datos MYSQL.

En donde dice lo siguiente

“$dbhost = “localhost”;” En este lugar pondran la direccion de la base de datos ejemplo:db.ejemplo.f2s.com

“$dbuname = “root”;” En este lugar pondran el nombre de usuario de la “base de datos” no la del sitio por si es distinta

“$dbpass = “”;” En este lugar pondran la contraseña de la “base de datos” no la del sitio por si es distinta

“$dbname = “nuke”;” En este lugar pondran el nombre de la base de datos (que siempre es la del nombre del sitio, ejemplo: “ejemplo”, nada mas.

“$system = 0;”

“$prefix = nuke;”

Luego lo unico que queda por hacer es volver a subir el archivo config.php ya que lo modificamos. Despues si todo salio bien, y si hicieron bien el tema de subir el archivo nuke.sql entrando por donde ya lo mencione anteriormente no tendria que haber problemas.

Para probar la pagina, basta con poner la direccion de la pagina osea ejemplo: www.ejemplo.f2s.com.

Fuente: http://www.programatium.com/php/phpnukefreedom.htm

Como pasar una web en Php-nuke a Joomla

Monday, March 23rd, 2009

Como trasladar una web de Nuke a Joomla

Requisitos
———

-Tener un php-nuke con foro nukebb (también sirve un phpbb entonces sólo hacer a partir del paso 6) funcionando
con su base de datos
-Tener un Joomla ya instalado, iniciado, pero vacío,con los componentes Fireboard , y si se quiere probar
yvComment,pero vacío, con algún usuario de prueba y ya está.

0-Bajaos este paquete y descomprimidlo
1-Copiamos los scripts en la raíz de Joomla
2-Accedemos a la Base de Datos y hagamos copia de seguridad de la de nuke

Empezamos
——–

3-ejecutamos el script nuketojoomla.php
4-escribimos nombres y contraseñas de las bases de datos
5-ejecutamos la migración, es recomendable no hacerlo automáticamente,primero seleccionamos la Sección de Joomla dónde
queramos que vayan los temas y después los artículos (sólo aquellos que estén bajo el módulo News, y que
salieran a portada), y también podremos migrar los usuarios, administradores incluidos.Hay una opción por migrar
comentarios pero no acaba de funcionar bien, si se quiere probar se tiene que tener en joomla instalado el componente
yvComment

Como importar los foros de phpbb o nukebb (php-nuke) a Fireboard (Joomla)
————————————————————————-

6-Hagamos copia de seguridad de la base de datos de Joomla mediante phpmyadmin >> Exportar
7-Importamos el contenido SQL de la base de datos de Joomla (que si hemos hecho el primer paso correctamente tendremos
un joomla con usuarios,artículos,etc.) DENTRO de la base de datos Nuke (no se sobreescriuran, una empieza por
nuke_ y el otro empieza por jos_)
8-Editamos el archivo configuration.php del joomla y redirigim Joomla a la base de datos de phpnuke, cambiando nombres
de usuario y contraseña
9-Editamos el archivo phpbb2fb.php y escribimos los datos de nuestra web, en principio si queremos pasar un foro
phpbb usaremos el encapçalment de base de datos phpbb_ y si es un foro nukebb (nuke phpbb) la cabecera
nuke_bb
10-Ejecutamos el archivo phpbb2fb.php.Si todo va bien irá haciendo cosas, tardará un poco e irá haciendo progresos, se ha
de dejar hasta que acabe
11-Ir a la web de joomla, comprobar que funciona
12-Entrar en la administración de Joomla y borrar los últimos usuarios creados, es fácil distinguirlos porque
tienen rango de administrador
13-Si la lista de usuarios no queda correcta se puede volver a pasar la script nuketojoomla y ejecutar SÓLO la
migración de usuarios

Fuente: http://knol.google.com/k/ellibre-como-el-chaval/como-pasar-una-web-en-php-nuke-a-joomla/3adhg32q7yuma/3#

Vulnerabilidad en PHP-Nuke

Monday, March 23rd, 2009

Se ha descubierto una vulnerabilidad en PHP-Nuke (versiones 6 y 7) que puede ser explotada por usuarios maliciosos para realizar ataques de inyección SQL.

PHP-Nuke es un sistema de gestión de contenidos de gran popularidad, utilizado en cientos de sitios web de todo el mundo. Escrito en PHP, es opensource, gratuito y cómodo de instalar y administrar, si bien ha mostrado un historial bastante amplio de vulnerabilidades.

La vulnerabilidad descubierta se debe a la falta de filtrado adecuado del parámetro ‘querylang’ en el módulo Top antes de ser utilizado en peticiones SQL. Esta circunstancia puede ser explotada para manipular peticiones de este tipo e inyectar código SQL arbitrario. Gracias a esta técnica se podría, por ejemplo, acceder a los hashes md5 de las claves de usuario de los administradores.

Si bien el problema ha sido confirmado en todas las versiones 6 y en las 7 hasta la versión 7.6 (última disponible para descarga), no se descarta que pueda afectar a otras. A falta de un parche que solucione el problema, se recomienda filtrar con un proxy peticiones maliciosas o bien modificar el código para filtrar adecuadamente las entradas a dicho parámetro.

Fuente: http://www.ajpdsoft.com/modules.php?name=News&file=article&sid=120

Vulnerabilidad en el PHP-Nuke Permite Copiar Archivos (admin.php)

Monday, March 23rd, 2009

PHP-Nuke es un portal de páginas web que coree en multitud de sitios web en la red. Un fallo en este producto paermite a los atacantes copiar archivos desde y hacia cualquier parte del disco duro del ordenador que está corriendo la web (lo cual permite sobreescribir archivos importantes). Este fallo puede causar el fallo total del sistema e incluso el acceso delatacante a información confidencial.

Detalles
Sistemas vulnerables:
PHP-Nuke 5.2 y anteriores

Systemas no vulnerables:
PHP-Nuke 5.0 RC1

Exploit:
Primero escribe esta URL:
http://www.ejemplo.net/admin.php?upload=1&file=config.php&file_name=hacked.txt&wdir=/images/&userfile=config.php&userfile_name=hacked.txt

Despues accede al archivo creado:
http://www.ejemplo.net/images/hacked.txt

Y verás el config.php que contiene los passwords DB . Cualquier otro archivo puede ser copiado con la misma facilidad.

Código causante del fallo:
El admin.php contiene la siguiente rutina:

$basedir = dirname($SCRIPT_FILENAME);
$textrows = 20;
$textcols = 85;
$udir = dirname($PHP_SELF);
if(!$wdir) $wdir=”/”;
if($cancel) $op=”FileManager”;
if($upload) {
copy($userfile,$basedir.$wdir.$userfile_name);
$lastaction = “”._UPLOADED.” $userfile_name –> $wdir”;
// This need a rewrite ————————————-> Aquí está el problema: “Esto necesita volver a escribirse”
//include(“header.php”);
//GraphicAdmin($hlpfile);
//html_header();
//displaydir();
$wdir2=”/”;
chdir($basedir . $wdir2);
//CloseTable();
//include(“footer.php”);
Header(“Location: admin.php?op=FileManager”);
exit;
}

Esto no comprueba si has entrado como admin o no, Por lo tanto puedes usarlo sin autentificación.

Solucion:
A temporary solution would be to change:
“if($upload) {”

To

“if (($upload) && ($admintest)) {”

Información Adicional
La información a sido suministrada por supergate yLucisfero de./twlc. El trabajo ha sido sugerido por Magnus Skjegstad. Toda la noticia está disponible en: http://www.twlc.net/article.php?sid=421.

http://team-tribal.cjb.net

Fuente:http://www.delitosinformaticos.com/articulos/10019427717212.shtml

Cómo instalar PHP-Nuke

Monday, March 23rd, 2009

1. Introducción

PHP-Nuke es un sistema de creación de portales (weblogs) distribuido bajo la licencia GPL, con el que podréis crear fácilmente páginas de noticias con gran facilidad y un buen resultado final.

En este artículo explicaré como preparar nuestro portal PHP-Nuke. Para la explicación he utilizado el servidor web Apache y el lenguaje PHP con soporte para base de datos MySQL.

2. Preparando la instalación

Para instalar PHP-Nuke, lo primero de todo será bajarnos la última versión de PHP-Nuke; esto lo haremos desde la página oficial de PHP-Nuke. Lo bajamos y descomprimimos y nos descomprimirá los siguientes ficheros y directorios:

  mordor:[~/phpnuke]% ls
  ADDONS-MODULES COPYING README TRANSLATIONS sql
  BLOCKS CREDITS SUPPORT UPGRADE
  CHANGES INSTALL TODO html

El directorio html contiene el código de la página. Lo guardaremos en un directorio que creemos destinado a hospedar páginas, por ejemplo /www.

Supongamos que el dominio de la página es inforsist.net. Pues guardaremos el directorio html en /www/inforsist.net/html. Lo siguiente será “decirle” apache mediante el uso de VirtualHosts que nuestros hostnames inforsist.net y www.inforsist.net se situan en el directorio /www/inforsist.net/html. Esto se haría añadiendo esto al fichero de configuración httpd.conf:

# Necesario para usar vhosts
  NameVirtualHost *

  <VirtualHost *>
  ServerAdmin webmaster@inforsist.net
  DocumentRoot /www/inforsist.net/html
  ServerName inforsist.net
  ServerAlias www.inforsist.net
  ErrorLog /www/inforsist.net/logs/inforsist.net-error_log
  CustomLog /www/inforsist.net/logs/inforsist.net-access_log combined
  </VirtualHost>

Haciendo que www.inforsist.net apunte a la IP del servidor donde está alojada la página y añadiendo esas lineas al fichero de configuración de Apache conseguiremos que nuestra página cargue correctamente y guarde los logs, que nos pueden ser útiles para generar estadísticas web con programas como Webalizer. Pero este es otro tema, así que no profundizaremos en él y nos centraremos en PHP-Nuke.

Tened en cuenta que estos ejemplos que he dado son mi configuración particular, y no tiene que ser identicamente como se hace aquí.

Una vez listo Apache, lo siguiente será preparar la base de datos que PHP-Nuke necesita para la página. Supongo que ya tienes instalado MySQL, y que has cambiado el password del usuario root. Esto se hace así:

# mysqladmin -u root -p password newpassword

Donde newpassword es el nuevo password que quieras poner. Ahora lo que haremos será crear una base de datos para la página. El nombre de la base de datos será, por ejemplo, inforsist. Después le daremos a ésta base de datos la estructura necesaria para el portal PHP-Nuke. Lo haremos así:

# mysqladmin -u root -p create inforsist
  # cd sql
  # mysql -u root -p inforsist < nuke.sql

Ahora tenemos creada la base de datos, a la cual el único usuario que tiene acceso es root. Podríamos configurar PHP-Nuke para que use este usuario para manejar la base de datos, pero no se recomienda en absoluto, porque en caso de que averiguen nuestro password, podrían hacer lo que quisieran con todas las bases de datos de nuestro sistema. Para evitar esto crearemos un nuevo usuario que sólo tenga privelegios sobre la base de datos inforsist. Esto lo haremos así: entramos a la base de datos con el cliente mysql, para ello tecleamos:

mysql -u root -p

Una vez dentro de sql, haremos lo siguiente:

mysql> grant all privileges on inforsist.* to
nombreusuario@localhost identified by 'password';

Ahora que ya tenemos un usuario/clave con acceso a la base de datos de inforsist, lo metemos en el fichero config.php del directorio de PHP-Nuke. Una vez hecho esto, vamos con el navegador a http://nuestra.pagina.phpnuke/admin.php, nos hacemos administradores y ya configuramos todo de forma sencilla, por página web.

3. Notas sobre seguridad

Debéis tener en cuenta los permisos de los ficheros, sobre todo si en vuestro sistema tenéis a más usuarios. Por ejemplo, si el fichero config.php tuviera permiso de lectura para todo el mundo, otro usuario de vuestro servidor podría ver la clave y hacer lo que quisiera con la página.

Mi recomendación es la siguiente: averiguar el usuario bajo el que corre vuestro servidor Apache, que suele ser nobody, y le dais a todos los ficheros de PHP-Nuke permisos de lectura/escritura para el propietario y permisos de lectura para el grupo. De esta forma otros usuarios no podrán ver el código.

chmod -R o-rwx html
chmod -R g+r html
chmod -R u+rw html

Nota: al fichero config.php debéis darle permiso de escritura para el usuario que corre el servidor Apache, para que podáis guardar las Preferencias.

Fuente: http://www.lawebera.es/comunidad/articulos/programacion/instalar-php-nuke.php