Hi Chuck, 2017ko otsailak 20an, "Charles C. Berry"-ek idatzi zuen:
[...] > > Allowing header args to be processed (as before) also allows for arbitrary > code to be executed. The point of setting ‘org-export-use-babel’ or > `org-export-babel-evaluate' to nil was to prevent this. For that reason > the former behavior was a bug. Iʼm not sure I agree that itʼs so simple. There are still ways to execute arbitrary code on export independently of babel (e.g. eval macros). The advice to use o-e-babel-evaluate for security was never (IMO) correct – the only properly secure wat to export untrusted documents would involve some kind of sandboxing of the emacs executable. The original bug that led to the change in the behavior of o-e-b-e was that a misspecified var header would lead to an error on export <http://thread.gmane.org/gmane.emacs.orgmode/106767>. I think the change was an overreaction to that problem (and insofar as it changed the long-standing behavior of that variable, a regression). Export (c/sh)ould still respect static (i.e. non-executable) header args; o-e-b-e should only inhibit executable args. From the standpoint of implementation, the execution of code in header args can be controlled by the inhibit-eval argument to org-babel-read and the light argument to org-babel-get-src-block-info (and both functions might need to be extended to look at dynamic variables in addition to these arguments). Taking a step back, I would ask what justifies o-e-b-eʼs existence at all. This thread demonstrates that itʼs not the right way to prevent babel blocks from executing on export. Itʼs also not a good solution to the security issue. Given the potential for confusion, Iʼd be in favor of deprecating it entirely unless thereʼs some compelling reason for it to exist that Iʼve overlooked. -- Aaron Ecay