我让maxima运行在tomcat服务器上,使用php访问该服务器。
在我的网站上,用户能够执行maxima命令,这些命令使用php发送到我的tomcat服务器。
然而,这给我带来了确保用户提供的输入是安全的问题。例如,我想禁止使用危险的极大值函数,如writefile (以及许多其他函数)。
目前,我只是使用php验证输入,使用黑名单上的单词列表,我使用strpos检查这些单词的出现情况。显然,这根本不是安全的,因为用户只需输入'write' . 'file' . '()'而不是writefile(),就可以避免检查黑名单上的单词。
我怀疑PHP是否应该用来确保所提供的输入是安全的,所以我想知道是否有办法在我的tomcat服务器上黑名单maxima中的某些函数?
发布于 2016-04-22 14:02:02
海事组织,多层安全解决方案是你唯一的选择。
发布于 2016-04-22 16:53:27
我同意关于多层安全的看法,只有几个想法可以贡献。
这些最重要的步骤可能是最重要的:
一旦涉及到前面的内容,这些内极大值步骤就不那么重要了:
:lisp输入?foo)我想如果你重新定义副作用函数,你就不用费心看黑名单了。用户可以调用writefile或其他什么,但没有任何效果。您可以在Maxima中重新定义内置函数,新定义优先于内置版本。注意,表示法foo([a]) := ...意味着a是所有参数(任意数量的参数)的列表,因此不需要考虑每个函数使用多少参数。
writefile ([a]) := false;为了更好地衡量,您也可以删除内置的Lisp函数。
?fmakunbound (writefile);参见FMAKUNBOUND中的普通Lisp超程序。
https://stackoverflow.com/questions/36794632
复制相似问题