[R-es] funciones en R potencialmente peligrosas via web?
Xavier de Pedro
xavier.depedro en ub.edu
Jue Sep 16 13:27:52 CEST 2010
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
Más información sobre la lista de distribución R-help-es