Categories
.NET Utilidades Windows Forms

Habilitar la corrección de ortografía en Windows Live Writer

Si algunos usan la versión en inglés de Windows Live Writer y un sistema operativo en español para escribir textos (en inglés obviamente), se habrán dado cuenta que la corrección de ortografía no funciona bajo estas condiciones.

Para solucionar este problema, lo único que tienen que hacer es crear una pequeña aplicación que ejecute Windows Live Writer en un dominio de aplicación personalizado:

csharp:

using System.Globalization;
using System.Threading;

class Program
{
        static void Main()
        {
                string exe = @"C:\Archivos de programa\Windows Live Writer\WindowsLiveWriter.exe";
               
                System.AppDomain app = System.AppDomain.CreateDomain(exe);
                Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
               
                app.ExecuteAssembly(exe);
        }
}

Si alguien quiere ahorrarse un poco de tiempo, puede descargar el ejecutable que preparó Roy Osherove.

Categories
Humor

Soy programador…

Soy programador
Fuente

Categories
ASP Sql Injection

Programadores despistados y la seguridad

Ayer recibí el siguiente correo de un preocupado programador (lo de programador despistado no va dirigido a la persona que me escribió el mail 😉 ):

A pesar de haber leido mucho sobre inyección de SQL, aun son incapaz de realizar ataques decentes. Mis ataques son tan malos que hacen que mis webs parezcan seguras cuando no lo son.

Siguiendo tus consejos suelo usar autenticas paranoias en el filtrado de cadenas de entrada. Ademas de validar los tipos de todas aquellas variables que vayan a una consulta.

Ultimamente me he encontrado con un programador que me ridiculiza diciendo que él lo arregla asi de facil:

asp:

<%
function sanear(original)
        texto=""
        cadena="abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ0123456789,.':;ÁÉÍÓÚÀÈÌÒÙáéíóúàèìòùïüÏÜçÇ¡!¿?-_*+-/=)(@%ºª{[]} "
        origen=original&""
        if len(origen)>0  then
        for i=1 to len(origen)
                letra=mid(origen,i,1)
                if instr(cadena,letra)>0 then
                        texto=texto&letra
                end if
        next
        end if
        sanear=texto
end function

usuario=replace(sanear(request.Form("usr")),"'","")
contrasena=replace(sanear(request.Form("pass")),"'","")

set rs=con.execute("select * from usuario where usuario='"&usuario&"' and contrasena='"&contrasena&"'")

%>

La base de datos está en una intranet y es un SQL Server 2000

A mi me parece que eso es tan inseguro como no poner login. Pero no he sido capaz de crear una cadena que se salte ese filtro 🙁

Me atasco con el espacio en blanco que no esta permitido. Probé el %00, el char(32)... pero algo hago mal porque no lo logro 🙁

Necesito demostrar que eso es inseguro o seguiran usando esa mierda de validaciones en toda la aplicacion.

Puedes usar mi pregunta para un articulo si te parece oportuno, de hecho seguro que tus lectores sabrian darme una respuesta.

No hay que ser experto en ASP para darse cuenta que ese código es bastante ineficiente y le dá una falsa sensación de seguridad al que lo programó, así mismo, me parece que también demuestra su falta de experiencia en programación.

Viendo el ejemplo particular que pone, creo que no es vulnerable a inyección de SQL. ¿Ustedes qué opinan?

Categories
Microsoft Utilidades WordPress

Nueva versión de Windows Live Writer

Esta semana se liberó una nueva versión del software que en la mayoría de los casos uso para escribir entradas, hablo de Windows Live Writer. Luego de jugar por un momento con las cosas que trae esta versión, les comento mis impresiones:

Lo bueno

  • Posibilidad de agregar nuevas categorías: me resulta particularmente útil esta opción porque casi siempre voy añadiendo nuevas categorías. 🙂
  • Soporte para especificar resúmenes (excerpt) de las entradas: esta opción me sirve para personalizar el meta description de cada entrada que se publica.
  • Sincronización con las ediciones que se hacen en línea.
  • Pegado especial: dá la posibilidad de remover el formato antes de pegar texto.

Lo malo

  • Sigue siendo igual de pesado que la versión anterior, se notan pequeños parpadeos al momento de hacer ciertas acciones.
  • Por el momento no soporta la corrección de ortografía para nuestro idioma.

Lo feo

  • No genera (X)HTML válido, sigue existiendo problemas con elementos <li> que no tienen un correspondiente tag de cierre </li>; por otro lado, sigue enviando atributos (no estándar) que sólo se usan para facilitar el trabajo de algunos plugins. Al parecer en esta versión tampoco existe una forma de escribir un plugin que actúe justo antes de publicar las entradas (esto sería útil para limpiar el HTML).

Si alguien desea usar esta nueva versión puede descargarlo desde http://g.msn.com/4SAWLWENUS/WriterMSI.