我正在考虑实施差异化的不同方法。这可以是我可以在PHP中从头开始编写wdiff,也可以在wdiff上运行shell_exex()
,并使用两个文件返回字符串,解析它的标记并进行相应的替换。我只是担心允许在shell上执行代码的安全性,就像我已经解释的那样。假设所有传递给wdiff
的字符串都是用户输入,在任何规范下都不可信任。PHP shell_exec - 它是否安全?
现在,我知道我可以使用像FineDiff这样的库,但老实说,我宁愿使用UNIX原生wdiff,但担心shell_exec总是容易受到任意代码注入,shell代码执行等的影响。使用?
“允许在shell上执行代码的安全性”---您不执行任意代码,而是执行具有2个参数的已知命令。你需要的仅仅是验证/清理路径。 – zerkms
你确实执行了任意代码。两个参数(两个不同的字符串)在理论上是用户输入的,所以你现在看到了这个问题? –
我没有看到问题,因为它们不是任意字符串,而是文件系统路径。你只要检查它是否是一个文件,它是可读的,你很好,是吗? – zerkms