3

我创建了一些实用程序代码,允许我将输入到我们的内容管理系统中的文本并动态编译并使用与此类似的方法调用

但这会带来安全风险——因为内容作者可能会错误地(或更糟糕地——恶意地)输入代码,这些代码会做我正在寻找的事情之外的事情。有什么建议可以保持此功能打开,但能够防止编写某些类型的代码?例如,有一些明显的事情需要限制,比如写入文件系统。

我最初的想法是排除某些程序集,但我很好奇是否有人对此有任何聪明的想法。

4

2 回答 2

6

不要这样做。用户可以编写的内容有无限的可能性,而您将无法阻止它们。为了安全起见,您应该始终指定用户可以做什么而不是他不能做什么(白名单而不是黑名单),因为如果您不这样做,您会错过一些东西。

在这种特定情况下,允许用户编写任意代码似乎从来都不是一个好主意。相反,您应该选择用户可以执行的特定操作,并为每个操作添加一个按钮/控件。

于 2013-06-11T18:12:06.140 回答
1

如果您真的需要此类功能,请考虑创建非常有限的功能。不允许用户输入文字;给他们“块”。从非常基本的、有限的指令集开始,仅在被要求时添加新指令。

于 2013-06-11T18:20:17.553 回答