我正在考慮實施差異化的不同方法。這可以是我可以在PHP中從頭開始編寫wdiff,也可以在wdiff上運行shell_exex()
,並使用兩個文件返回字符串,解析它的標記並進行相應的替換。我只是擔心允許在shell上執行代碼的安全性,就像我已經解釋的那樣。假設所有傳遞給wdiff
的字符串都是用戶輸入,在任何規範下都不可信任。PHP shell_exec - 它是否安全?
現在,我知道我可以使用像FineDiff這樣的庫,但老實說,我寧願使用UNIX原生wdiff,但擔心shell_exec總是容易受到任意代碼注入,shell代碼執行等的影響。使用?
「允許在shell上執行代碼的安全性」---您不執行任意代碼,而是執行具有2個參數的已知命令。你需要的僅僅是驗證/清理路徑。 – zerkms
你確實執行了任意代碼。兩個參數(兩個不同的字符串)在理論上是用戶輸入的,所以你現在看到了這個問題? –
我沒有看到問題,因爲它們不是任意字符串,而是文件系統路徑。你只要檢查它是否是一個文件,它是可讀的,你很好,是嗎? – zerkms