Re: [Python-es] exec seguro

2010-05-08 Por tema Narcis Garcia - GiLUG
Quizás pueda establecer un diccionario de funciones y operadores 
admisibles, y antes de ejecutar la expresión analizar si todas las 
palabras de la cadena estan en el diccionario.




En/na Hernan Foffani ha escrit:

El 07/05/2010, a las 21:27, Oswaldo Hernández escribió:


Reynaldo Baquerizo escribió:

   En definitiva, ¿Qué es lo que quieres evitar? Hay cosas muy dañinas
   que un usuario tontorrón puede hacer y que son muy difíciles de
   detener (while 1: pass)
algunas ideas puedes sacar de esta receta
http://code.activestate.com/recipes/496746-restricted-safe-eval/

La he estado viendo y creo que puedo sacar cosas muy interesantes, el exec lo 
realiza en un thread para controlar el timeout, y me llama la atencion 
especialmente el uso que hace de los módulos 'inspect' y 'compiler' para 
analizar el codigo a ejecutar.

Python no deja de sorprenderme :)


Lee los comentarios; verás que hay varias situaciones que no están contempladas. 


Mientras el entorno restringido no sea oficial, es decir, que está bien 
integrado al intérprete y bendecido por GvR y amigos tendrás unos cuantos 
agujeros y lo que es peor, una falsa sensación de seguridad.

En mi opinión, hay dos alternativas viables. Si tienes usuarios en los que no 
puedes confiar ni pedir responsabilidades (por ejemplo, un sitio web) es mejor 
pasar del scripting de aplicaciones. Si puedes confiar en ellos (sabes quiénes 
son, el grupo es acotado, etc.) dales todo el poder y que tengan bien claro que 
lo tienen. Excluyo la opción de incorporar un evaluador de expresiones o un 
minilenguaje o un DSL porque, aunque es una solución perfectamente válida, no 
es lo que preguntabas.

Dicho de otro modo, conmigo o van todos desarmados o portando armas de fuego. 
En este último caso, yo me quedo a kilómetros de distancia. El arco y flecha da 
muchos dolores de cabeza: pierdes un montón de tiempo enseñando a los usuarios 
a usarlo, se quejan de que no les sirve para cazar rinocerontes y hagas lo 
hagas terminas recibiendo una flecha en el culo.


___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/

___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] Ocultar una clave introducida por consola de Windows

2010-05-08 Por tema Arnau Sanchez

On 08/05/10 05:58, Rasiel Aponcio Borges wrote:


import getpass
pass = getpass.getpass()


pass es una desafortunada elección como nombre de variable:

http://docs.python.org/tutorial/controlflow.html#pass-statements
___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] posicionamiento de elementos con wxpython

2010-05-08 Por tema juan marcelo conca
El día 8 de mayo de 2010 11:43,  rafaelcan...@hotmail.com escribió:
 Buenas.

 Abajo le hes puesto un código que estoy usando para probar. No consigo dar
 con la clave para lo siguiente:
 1. Colocar los controles dentro de un boxSizer en vertical.
 2. Que los controles se adapten al tamaño de la ventana
 3. que los controles ocupen todo el espacio disponible para ellos
 4. Alinear los controles dentro del espacio asignado donde quiera.

 He mirado en la documentación de wxpython y he probado con los valores
 posibles, pero, o no me entero bien, o he sido incapaz de configurarlo, o no
 he entendido bien como funciona el boxSizer.
 Les agradecería su ayuda.

Hola Rafael: quizá no sea una novedad para vos pero: conoces wxglade,
te ayuda mucho con los sizers. Yo que soy un novato hago los sizers
con wxglade y todo anda de maravilla e inclusive sirve para ver que es
lo que hace el programa y aprender desde ahí tambien.
Un saludo.
--
Machi Conca.
___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] encoding en py2exe

2010-05-08 Por tema José Jorge Lorenzo Vila
Bueno, no se en tu caso particular, pero ese error siempre me ha 
ocurrido cuando tengo algún script que contiene caracteres con tildes o 
ñ, etc y no tengo definido el encoding utf-8 en ese script.


Lo soluciono poniendo al inicio del script la linea siguiente:

#!/usr/bin/python
# -*- coding: utf-8 -*-


saludos.
___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/