[R-es] funciones en R potencialmente peligrosas via web?

Xavier de Pedro xavier.depedro en ub.edu
Vie Sep 17 14:14:10 CEST 2010


Gracias de nuevo, Carlos. Lo leí hace días (y algunos enlaces de 
articulos de esta misma persona), y he vuelto a re-leer en diagonal 
ahora, pero en ambos casos me dió/ha dado mala espina que la web de 
elastic-r es una intranet privada (no hay demo pública, ni botón de 
"download" para bajarte su código supuestamente libre), y la web del 
dominio elastic-r está hecha en aspx (no es libre).

Así que seguiré con interés el tema de elastic-r, y si puedo asistir 
algúa día a algun tutorial como ese, haré lo posible por no perdérmelo.

Saludos

Xavi

Al 17/09/10 13:28, En/na Carlos J. Gil Bellosta ha escrit:
> Entonces, igual te interesa esto:
>
> http://user2010.org/tutorials/Chine.html
>
> Un saludo,
>
> Carlos J. Gil Bellosta
> http://www.datanalytics.com
>
> El día 17 de septiembre de 2010 13:25, Xavier de Pedro
> <xavier.depedro en ub.edu>  escribió:
>    
>> Gracias Carlos!
>>
>> Al 16/09/10 15:09, En/na Carlos J. Gil Bellosta ha escrit:
>>      
>>> Por ejemplo, get().
>>>
>>> mi.alias.para.funcion.prohibida<- get( "funcion.prohibida")
>>> mi.alias.para.funcion.prohibida( producir, catastrofes, en, servidor )
>>>
>>>
>>>        
>> Mi didáctico el ejemplo :-)
>>      
>>> ¡Qué peligro tendría ese servidor...!
>>>
>>>
>>>        
>> Claro, por eso lo de añadir un control intermedio para revisar las llamadas
>> a comandos potencialmente peligrosos de R via web.
>>      
>>> En cualquier caso, creo que permitir correr scripts irrestrictos en un
>>> servidor a cualquiera es un servicio, aparte de peligroso,
>>> relativamente inútil cuando se trata de R: ¡todo el mundo se lo puede
>>> instalar gratuitamente!
>>>
>>>
>>>        
>> Si, si, por descontado, pero creo que no tienes en cuenta ahora mismo otros
>> posibles casos de uso. Hay veces que nos es útil acceder a nuestro propio R
>> (por ejemplo) via web (como en el caso de mi trabajo actual para un grupo de
>> estadística y bioinformática que trabaja desde varios campus de varias
>> instituciones diferentes, con sus propios firewalls, burocracias y demás
>> impedimentos para acceder por shell a otro servidor donde están los datos,
>> scripts...)
>>
>> Y otro caso (al menos) donde nos ha venido bien ha sido en otro proyecto
>> donde hemos usado via web los mismos scripts de R con los que el profesorado
>> analizábamos en local unos archivos xml de traza de la actividad de los
>> alumnos en unos ejercicios. De esta forma, tenemos la ventaja que el alumno
>> mismo podía ver via web (justo después de enviar el archivo de traza por
>> formulario web) el resultado del informe básico sobre el desarrollo de su
>> ejercicio (procesado por R en el servidor y mostrado en página Wiki). Más
>> info: http://cochise.bib.ub.es
>>
>> Saludos, y gracias por tus comentarios (añado "get" ahora mismo a lista de
>> comandos a comprobar).
>>
>> Xavi
>>
>>
>>
>>      
>>> Un saludo,
>>>
>>> Carlos J. Gil Bellosta
>>> http://www.datanalytics.com
>>>
>>>
>>> 2010/9/16 Xavier de Pedro<xavier.depedro en ub.edu>:
>>>
>>>        
>>>> Hola:
>>>>
>>>> Para el desarrollo del nuevo PluginR de Tiki (para poder ejecutar scripts
>>>> de
>>>> R desde Tiki: en páginas Wiki, hojas de cálculo web, etc,
>>>> http://dev.tiki.org/PluginR ), por ahora estamos usando la lista de
>>>> funciones que se usaban en el proyecto r-php, y que fueran heredadas por
>>>> la
>>>> extensión R de MediaWiki.
>>>>
>>>> Como r-php se hizo hace algunos años (2006), me pregunto si alguien sabe
>>>> si
>>>> hay alguna funcion nueva que sea "potencialmente peligrosa" en los
>>>> paquetes
>>>> básicos de R de versiones recientes (2.10.x, por ejemplo), y los de XML
>>>> (que
>>>> usamos para procesar datos de un proyecto de investigación concreto donde
>>>> ya
>>>> estamos usando el PluginR).
>>>>
>>>> La lista actual de funciones "baneadas" por omisión en los scripts de R
>>>> de
>>>> los usuarios de la web es:
>>>> (procesado de script bloqueado hasta que un admnistrador no valide que la
>>>> llamada a ese comando en una página concreta es segura)
>>>>
>>>>     $banned = array('.C', '.Call', '.Call.graphics', '.External',
>>>> '.External.graphics',
>>>>             '.Fortran', '.readRDS', '.saveRDS', '.Script', '.Tcl',
>>>>             '.Tcl.args', '.Tcl.callback', '.Tk.ID', '.Tk.newwin',
>>>> '.Tk.subwin',
>>>>             '.Tkroot', '.Tkwin', 'basename', 'browseURL', 'bzfile',
>>>>             'capture.output', 'close', 'close.screen',
>>>> 'closeAllConnection',
>>>> 'data.entry',
>>>>             'data.restore', 'dataentry', 'de', 'dev.control',
>>>> 'dev.copy2eps',
>>>>             'dev.cur', 'dev.list', 'dev.next', 'dev.prev', 'dev.print',
>>>>             'dev.set', 'dev2bitmap', 'dget', 'dir', 'dir.create',
>>>>             'dirname', 'do.call', 'download.file', 'dput', 'dump',
>>>>             'dyn.load', 'edit', 'edit.data.frame', 'emacs',
>>>> 'erase.screen',
>>>>             'example', 'fifo', 'file', 'file.access', 'file.append',
>>>>             'file.choose', 'file.copy', 'file.create', 'file.exists',
>>>> 'file.info',
>>>>             'file.path', 'file.remove', 'file.rename', 'file.show',
>>>> 'file.symlink',
>>>>             'fix', 'getConnection', 'getwd', 'graphics.off', 'gzcon',
>>>>             'gzfile', 'INSTALL', 'install.packages', 'library.dynam',
>>>>             'list.files','loadhistory', 'locator', 'lookup.xport',
>>>> 'make.packages.html',
>>>>             'make.socket', 'menu', 'open', 'parent.frame', 'path.expand',
>>>>             'pico', 'pictex', 'pipe',
>>>>             'postscript', 'print.socket', 'prompt', 'promptData',
>>>> 'quartz',
>>>>             'R.home', 'R.version', 'read.00Index', 'read.dta',
>>>> 'read.epiinfo',
>>>>             'read.fwf', 'read.mtp', 'read.socket', 'read.spss',
>>>> 'read.ssd',
>>>>             'read.xport', 'readBin', 'readline', 'readLines',
>>>> 'remove.packages',
>>>>             'Rprof', 'save', 'savehistory', 'scan', 'screen',
>>>>             'seek', 'setwd', 'showConnection', 'sink', 'sink.number',
>>>>             'socketConnection', 'source', 'split.screen', 'stderr',
>>>> 'stdin',
>>>>             'stdout', 'sys.call', 'sys.calls', 'sys.frame', 'sys.frames',
>>>>             'sys.function', 'Sys.getenv', 'Sys.getlocale', 'Sys.info',
>>>> 'sys.nframe',
>>>>             'sys.on.exit', 'sys.parent', 'sys.parents', 'Sys.putenv',
>>>> 'Sys.sleep',
>>>>             'Sys.source', 'sys.source', 'sys.status', 'Sys.time',
>>>> 'system',
>>>>             'system.file', 'tempfile', 'textConnection', 'tkpager',
>>>> 'tkStartGUI',
>>>>             'unlink', 'unz', 'update.packages', 'url', 'url.show',
>>>>             'vi', 'write', 'write.dta', 'write.ftable', 'write.socket',
>>>>             'write.table', 'writeBin', 'writeLines', 'x11',
>>>>             'xedit', 'xemacs', 'xfig', 'zip.file.extract',
>>>>             'readdataSK',
>>>>             'png', 'jpeg',
>>>>             'call', 'eval' );
>>>>
>>>> Tenéis idea si se debería incluir alguna más?
>>>>
>>>> Xavi
>>>>
>>>> _______________________________________________
>>>> R-help-es mailing list
>>>> R-help-es en r-project.org
>>>> https://stat.ethz.ch/mailman/listinfo/r-help-es
>>>>
>>>>
>>>>          
>>>
>>>        
>>      
>



Más información sobre la lista de distribución R-help-es