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

Carlos J. Gil Bellosta cgb en datanalytics.com
Vie Sep 17 13:28:56 CEST 2010


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