TFTGallery

TFTGallery es una aplicación hecha en PHP (y traducida por mi) para poder meter un album con tus fotos en la web.

Permite protección por contraseña, añadir comentarios a las categorías y fotos, pasar a pdf, bajar todo en zip, crear tu propio listado de fotos para hacer el pdf y además es fácil de instalar. Uno de los mejores que encontré.

Como parar ataques DOS al servidor web

El título más bien debería decir: Como pararlos parcialmente, ya que como sea un dDOS en condiciones desde varias IPs, es complicado de parar sin muchos recursos.

Este caso me ha pasado recientemente, una persona se puso en contacto conmigo porque estaba recibiendo ataques de una sóla IP que conectaba demasiadas veces contra su servidor apache (en el puerto 80 pero usando tantas conexiones que le chupaba todo el ancho de banda).

La solución sencilla, cuando os pase algo del estilo, pasa por poner una pequeña regla en el firewall que impida a esa IP ver vuestro servidor, de forma que piense que ha conseguido su objetivo: tirarnos el servidor, pero que otros puedan seguir viendo el servidor.

Leer más

Compresión gzip sobre http para mejorar la velocidad

Si tienes tu propio servidor esto quizás pueda interesarte para consumir menos ancho de banda, o en mi caso, que las páginas al servirlas, ocupen menos y por tanto se carguen más rápido. Una técnica conocida desde hace tiempo pero que no he probado hasta ahora debido a que no me había entrado curiosidad hasta que haciendo un programilla descubrí que diciéndole a cierto servidor que yo era IE y que aceptada compresión gzip, me devolvía la página comprimida.

Buscando por ahí, encontré el modo de hacerlo en apache (gracias a lo cual haré antes pruebas en mi servidor antes de seguir con el programa).

Leer más

Como generar certificados con CA propia

AVISO: Artículo desactualizado, algunas funciones de javascript ya no existen y el tamaño del certificado debe ser como poco de 2048 en adelante.

Por si alguien se pregunta como hacen para generar certificados de la FNMT o de cualquier otra entidad certificadora (CA), aquí dejo un ejemplo:

<form  enctype=”application/x-www-form-urlencoded”  action=”http://example.com/secure/keygen/test.cgi” method=”post”>
<select name=”randomkey” option2048 (alto nivel)/>
<option option1024 (nivel medio)/></option>
<select input type=”text” value=”Default Text” name=”Field1″ />
  • challenge – Specifies the challenge string to be packaged with the public key for use in verification of the form submission. If no challenge string is provided, then it is encoded as an ‘IA5STRING’ of length zero.
  • name – Names the keygen string.

Más información en: http://www.developingwebs.net/htmlcode/keygentag.php y http://www.blooberry.com/indexdot/html/ … keygen.htm

Para que te envíen algo firmado por web:

<script language="javascript">
function signAndSend() {
document.login.firma.value=crypto.signText(document.login.nick.value,"ask");
document.login.submit(); } </script>
<form>
<input type="text" name="nick" />
<input type="hidden" name="firma" />
<input type="submit" onclick="javascript:signAndSend();" value="Entrar" />
</form>

De: http://oasis.dit.upm.es/~jantonio/firmadigital/ (no funciona) en kriptopolis hay otro artículo interesante: http://www.kriptopolis.org/node/1903 (no funciona

Evidentemente, estos certificados generados, no valen para entrar en sitios de la administración, ya que poseen la firma de nuestra propia entidad certificadora y no la de la FNMT que es un organismo oficial.

SPF: Sender Policy Framework

Si tienes un dominio y algún spammer lo ha usado en sus correos, corres el riesgo de que te metan en una lista negra, aunque tu no hayas enviado los correos, con este fin, si tu ISP lo permite o tienes tu propio servidor de DNS, existe un campo especial (TXT record) para guardar desde que ips envías correo electrónico de tu dominio.

De este modo también ayudas a luchar contra el spam, ya que un servidor que implemente esta política (que cada vez son más), marcará como spam automáticamente cualquier email que provenga de tu dominio que no haya sido enviado desde alguno de tus servidores autorizados a mandarlo, esto también ayudaría mucho en la lucha contra el phising, a ver si los ISP oyen hablar de esto y lo implementan, ya que son medidas que ayudarán a todos.

Más información en: http://www.openspf.org/ (URL actualizada)

BanFromLog

BanFromLog es un script para filtrar las ips del /var/log/auth.log de tu debian (u otra distro si lo personalizas para el auth.log de tu distro) y banearlas. Esto es útil debido a que vienen muchos ataques de fuerza bruta por SSH y es útil ahorrar ancho de banda y CPU.

Baifox

Es un panel de control bajo licencia GPL para servidores:

Baifox es un panel de control GPL para gestión de servidores al igual que muchos otros como Cpanel, Plesk, Ensim, y algunos otros proyectos libres como, Wht, Account Services Manager, etc

Funciona bajo debian y tiene los siguientes módulos para configurar los programas: mod_apache, mod_awstats, mod_banthwidth, mod_bind, mod_db_mysql, mod_logrotate, mod_procesos, mod_pureftpd, mod_sysinfo, mod_vpopmail.

Sentencia LIMIT existe en oracle, MySQL y postgresql

La Sentencia LIMIT existe en oracle, MySQL y postgresql.

Todos sabemos que MySQL tiene una sentencia limit:

SELECT * FROM emp LIMIT 0, 30;

En postgresql es al revés:

SELECT * FROM emp LIMIT 30, 0;

Pues bien, oracle, como no iba a ser menos, también la tiene:

SELECT FROM emp WHERE rownum < 100;
SELECT FROM emp WHERE rownum > 100 AND rownum < 200;
SELECT * FROM emp WHERE rownum BETWEEN 100 AND 200

Pongo a continuación los comentarios que no se verñian de otro modo al migrar el blog.


OracleUSer 27 marzo, 2008, 04:29 no funciona asi, si utilizas order by:(


Jose Sanchez 27 marzo, 2008, 21:46 Mirando la página de oracle lo tienes aquí con order by:

select *
from
( select *
from emp
order by sal desc )
where ROWNUM <= 5;

http://www.oracle.com/technology/oramag/oracle/06-sep/o56asktom.html (enlace no funciona)


Broda Noel 10 mayo, 2012, 14:32 Gente,
Esto no funciona, porque ROWNUM tendría que «no cambiar de orden» en caso que se ordene.
Si se hace un ORDERBY, los valores ROWNUM de cada registro sigue siendo el mismo, ya que es algo así como el numero de registro en la tabla, el cual nunca cambia.
De esa forma es totalmente imposible ordenar.

O sea, prueben esto:
Hagan un Query buscando PERSONAS, ordenenlo por APELLIDO ASC. Anoten que registros les trae. Luego ordenenlo por APELLIDO DESC y verán que trae lo mismo, siendo que debería traer otra cosa muy diferente a lo que debería traer. Se pierde el orden.
No prueben con 100 y 200, prueben con valores muy pequeños


Jose 10 mayo, 2012, 14:53 Estimado Broda, en el artículo no hablo del order by, sólo en un comentario posterior sacado de la web de oracle, un ejemplo que no he probado por cierto.

Si quieres solucionar tu problema vas a tener que seguir probado y buscando 🙂


Ayuda en la lucha contra el SPAM

http://spanish.spampoison.com/ (enlace ya no funcional) – es una web dedicada a absorver las visitas de los robots, cuando éstos visiten tu página, si pones un link a ellos (ver su página para más información) los robots irán a la página, estarán visitando en bucle páginas del mismo dominio añadiendo cada vez más emails falsos a su base de datos.

Por fin cuando acaben, tendrán una base de datos llena de emails falsos y cuando la intenten utilizar, les devolverán muchos correos a menos que se pongan a limpiar la lista, lo cual les llevará también bastante trabajo. Para más información, visitar su web.