[R-es] funciones en R potencialmente peligrosas via web?
Carlos J. Gil Bellosta
cgb en datanalytics.com
Jue Sep 16 15:09:49 CEST 2010
Por ejemplo, get().
mi.alias.para.funcion.prohibida <- get( "funcion.prohibida")
mi.alias.para.funcion.prohibida( producir, catastrofes, en, servidor )
¡Qué peligro tendría ese servidor...!
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!
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