URL のハッシュにいくつかの JavaScript 変数を格納する方法を探しています。私の目的は、ユーザーがブックマークを使用して Web アプリケーションの特定の状態を復元できるようにすることです。
あるアプローチで JSON シリアライゼーションを使用する可能性があることに気がつきました。つまり、変数を次のように保存します
var params = { var1: window.val1, var2: window.val2 }
window.location.hash = JSON.stringify(params)
このようにそれらを回復します
var paramStr = window.location.hash.substring(1) // substring removes the initial "#"
var params = JSON.parse(paramStr)
window.var1 = params.var1
window.var2 = params.var2
これは、私がやりたいことを行うための最も単純で簡潔な手法のようです。私には理解しやすく、たとえば、この人気のある SO 提案よりも少ないコード行を使用します。とはいえ、不安でもあります。悪意のあるユーザーが URL に任意のコードを書き込むことができ、私のアプリがそれを実行する可能性があります。これは危険に思えますが、私は Web プログラミングにかなり慣れていないので、これがどれほど大きな問題なのかわかりません。
window.location.hash
変数を安全に保存するために上で概説した手法は使用できますか? そうでない場合、なぜですか?起こりうる最悪の事態は何ですか?