我想要的數據結構加載到一個Ruby腳本映射字符串到三倍包含正則表達式,腳本和原子的某種組合。它從加載的文件需要是可寫的。安全裝載散在Ruby中
目前我正在寫包含一個Ruby散列文件,加載,作爲一個字符串,並調用eval。 IE瀏覽器。
數據文件
{ "key1" => [ /pattern/, "text", "text" ],
"key2" => [ "text2", :nil, "text3" ],
"key3" => [ "text4", /pattern2/, /pattern3/ ] }
腳本
def get_mapping
f = File.new path
return eval(f.read())
end
這是罰款和作品,但感覺(我)就像一個黑客攻擊的一位,(二)不安全。所以我很想知道:有沒有更好的方法來做到這一點?
這幾乎是JSON,但我不認爲,可以輕鬆處理原子或正則表達式。文件格式可以改變,因爲它保持合理的人類可讀/可寫。
風險可以通過大部分環境來緩解風險,雖然是的,但總的來說,我同意。 YAML幾乎是它的樣子,只是希望我不必去「!ruby/regexp」。 – 2009-09-18 10:09:40