Professional Documents
Culture Documents
Mrodriguez - Wordpress.com
Mrodriguez - Wordpress.com
Ideando
junio 6, 2008
Este blog se muda
http://www.insesys.com.mx
Dejar un comentario
En esta dirección está el post original que ahora anexo en español tomado de aquí:
http://mrodriguez.wordpress.com/ 17/11/2011
Ideando Página 2 de 7
encendidas, de este modo hacemos código mejor construído (léase 100 veces: no garantiza
que perfectamente construído, pero ayuda). La forma de configurar esto es de la siguiente
manera:
<compilation debug="true" strict="true" explicit="true"/>
4. Cookies suplantables. Los hackers pueden realizar ataques de XSS (Cross Site Scripting)
cuando las cookies son accesibles del lado del cliente, intentan este tipo de ataques cuando se
encuentran por ejemplo con saludos del tipo Hola ChicoDotNet en las páginas en la que se
inicia sesión agregando su propio código del lado del cliente. Esto puedes dificultarlo
fácilmente -valga la redundancia- cuando enciendes las cookies HttpOnly, esto se hace de la
siguiente forma:
<httpCookies httpOnlyCookies="true" />
5. Sesión sin cookies. Para hacer disponible una aplicación a los clientes que no aceptan cookies
se tiene la opción de colocar la sesión en la URL, muchos las utilizan por defecto para no
complicarse asignando a la etiqueta sessionState el atributo cookieless con el valor UseUri, sin
embargo esto abre la posibilidad de suplantar a un usuario determinado visitando la dirección
que contiene la sesión, esto puedes evitarlo almacenando la sesión en una cookie que expire
pronto, pero queda el problema de los clientes que no aceptan cookies, para ellos necesitas
enviar la sesión en la URL, ¿Cómo resolver eso?, enciende la autodetección, eso hará que los
clientes que las acepten las usen y los que no las reciban en la URL, se hace con el siguiente
código en Web.config:
<sessionState cookieless="AutoDetect" />
6. No emitir cookies seguras. Las cookies seguras se emiten utilizando SSL, esto hace que la
transmisión se realice en forma encriptada, para configurar SSL en IIS puedes ver el artículo
en MSDN que te indica como hacerlo en IIS 6.0, en el caso de IIS 7.0 es mucho más sencillo
como ya había mencionado anteriormente. Para la configuración de la transmisión de las
cookies por medio de SSL utiliza el siguiente código:
<authentication mode="Forms">
<forms requireSSL="true" />
< /authentication>
7. Sesiones alargables. Para alargar el tiempo de expiración de una sesión se utiliza el atributo
slidingExpiration de la etiqueta forms, esto da mayor tiempo a los hackers para suplantar a un
usuario determinado, la recomendación es dejarlo como se indica a continuación:
<forms slidingExpiration="true" />.
8. Uso de cookies de autenticación por defecto. El nombre por defecto de una cookie de
autenticación es .ASPXAUTH, una buena práctica es nombrar estas de manera distinta, por
ejemplo utilizando un GUID, de esta manera evitamos que alguien que se firme en una
aplicación del servidor y pueda modificar la cookie para firmarse en otra utilizando la primera
cookie obtenida. Este valor se pondría en el lugar que indico a continuación:
<authentication mode="Forms">
<forms name="{80aae8ec-cee2-46bc-ba57-eb89cd3db488}" requireSSL="true" />
< /authentication>
9. Paso de variables por URL. El uso de Request.Querystring(“variable”) para operaciones de
negocios debe ser evitado, sobre todo si se trata de información sensible, se debe preferir el uso
de variables de sesión o de ViewState, de otro modo cualqueir persona con algo de
conocimientos de programación podría hacer ataques de XSS o de SQL injection.
10. Credenciales o cadenas de conexión en Web.config. Esto es lo más común de la lista, debe
evitarse a toda costa el guardar usuarios y contraseñas en etiquetas credentials y cadenas de
conexión o configuraciones de aplicación en Web.config sin antes cifrarlas adecuadamente. O.
K., IIS evita la descarga de estos archivos de forma remota, pero ¿Qué me dicen de los del
hosting? Hay que tener mucho cuidado con esto.
Dejar un comentario
agosto 8, 2007
Follow
http://mrodriguez.wordpress.com/ 17/11/2011
Ideando Página 3 de 7
Código Samurai
Inglés: http://wilshipley.com/blog/2005/02/free-programming-tips-are-worth-every.html
Español: http://zumodewiki.wordpress.com/2007/08/03/el-codigo-samurai-como-programar-mejor/
En resumen, puedo decir que hacen mucho énfasis en lo que la experiencia nos hace entender, la
importancia de:
“Pensar y repensar” antes de tirar código.
Entender exactamente que estamos haciendo.
Hacer versiones del mismo proyecto, antes de hacer el proyecto final
Hacer código mantenible.
No dejar cosas para después. (Mi padre decía que no hay mañana y hasta ahora el mañana aún no
llega, comienzo a pensar que tiene razón)
Programar pensando que las cosas alrededor de nuestro sistema puede fallar (red, bd, el usuario,
etc…)
Hay muchas otras cositas escondidas que leyendo la versión en inglés seguro captarán.
Dejar un comentario
agosto 4, 2007
Como ejecutar un comando msdos desde SQL
Existe un store procedure con el que se puede ejecutar una instrucción msdos desde sql. Se hace de
esta forma:
Dejar un comentario
Para evitar el uso de cursores se pueden crear tablas temporales con un campo identity. Despues se
puede usar esta tabla temporal para recorrerla en un ciclo usando el identity para identificar el registro
que se requiere. Un ejemplo de esto sería: Follow
http://mrodriguez.wordpress.com/ 17/11/2011
Ideando Página 4 de 7
Dejar un comentario
mayo 2, 2007
Desarrollo de programas de .NET sin Visual Studio.
Un documento interesante:
http://www.microsoft.com/spanish/msdn/comunidad/mtj.net/voices/art58.asp
Dejar un comentario
Me encontré un documento muy interesante acerca del manejo de objetos con javascript, visto por un
desarrollador: http://msdn.microsoft.com/msdnmag/issues/07/05/JavaScript/Default.aspx?loc=es
Comentarios (4)
http://mrodriguez.wordpress.com/ 17/11/2011
Ideando Página 5 de 7
http://openrico.org/rico/home.page
Es un framework para javascript bastante útil, está bastante interesante y es altamente probable que
en un futuro proyecto utilice el drag & drop que este framework maneja
http://script.aculo.us/
Dejar un comentario
Hace un rato me llegó a mi correo una función con la que se puede validar que una cadena de
caracteres cumpla con el formato de cuenta de correo. Como se que en algún momento la voy a
ocupar la dejo aquí como referencia:
var emailfilter=/^\w+[\+\.\w-]*@([\w-]+\.)*\w+[\w-]*\.([a-z]{2,4}|\d+)$/i
function checkmail(e){
var returnval=emailfilter.test(e.value)
if (returnval==false){
alert(“Please enter a valid email address.”)
e.select()
}
return returnval
}
Comentarios (1)
Hace un rato leyendo mis correos me encontré con una pregunta interesante. ¿Como montar un div
encima de un select box? Me recordó la ocasión en la que tuve que hacer esto y lo solucioné
escondiendo el select box, pero volví a darle una revisada a internet y ahora al parecer ya hay
solución (será que siempre la hubo), me encontré un enlace donde presentan una historia semejante a
la mia, pero con una solución alternativa que realmente desconocía, me gustó lo bien que lo explican,
dejo el enlace para futuras referencias:
http://dotnetjunkies.com/WebLog/jking/archive/2003/07/21/488.aspx
Follow
http://mrodriguez.wordpress.com/ 17/11/2011
Ideando Página 6 de 7
http://esdi.excelsystems.com/wsexmp/divdrp.pgm?wsnum=00110
http://support.microsoft.com/default.aspx?scid=KB;en-us;q177378
La clave está en los iframes (tengo que leer mas de esto) y los windowed controls (quizá mas adelante
escriba lo que sé de estos).
Dejar un comentario
Entradas más antiguas »
• Buscar
• Lo más reciente
◦ Este blog se muda
◦ 10 puntos para tomar en cuenta en el web config
◦ Código Samurai
◦ Como ejecutar un comando msdos desde SQL
◦ Como evitar el uso de cursores en Store procedures
noviembre 2011
L M X J V S D
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
« jun
• Páginas
◦ About me
Follow
http://mrodriguez.wordpress.com/ 17/11/2011
Ideando Página 7 de 7
• Últimos comentarios.
◦ Daniel Rivera en Identificando si el navegador acepta cookies
◦ Ismael Tarqui en Como identificar el navegador (browser) en el que se presenta la
página, usando javascript
◦ Vicente de Caracas Venezuela en Como identificar el navegador (browser) en el que se
presenta la página, usando javascript
◦ kuli en Archivos JSE, codificar y decodificar archivos con javascript
◦ kuli en Archivos JSE, codificar y decodificar archivos con javascript
Follow
http://mrodriguez.wordpress.com/ 17/11/2011