ということで、Chrome コンソールで JavaScript を実行できるようだということを今日知りました。私はあなたがこれを行うことができるとは思いもしませんでした。それは実際には本当にクールです。
私の Rails アプリには、外部の JavaScript ページがあります。そのページの変数のいくつかは、JS ファイル内のすべての関数がアクセスできるようにグローバルにしたいと考えています。たとえば、マップがあり、JavaScript ファイルでマップ オブジェクトをグローバルにしたいと考えています。これは、すべての関数が独自のマップ変数を作成するのではなく、1 つのマップ変数にアクセスし、複雑な操作を小さな関数に分割できるためです。
これはすべてうまくいっています。私はそれを行う方法を知っており、完全に機能しています。私の問題は、外部から変数を保護できますか? たとえば、Chrome コンソールからすべての JavaScript クラス変数の値を変更できます。また、マップなどのメソッドはアクセス可能で実行可能です。ページの 1 つでマップ設定をロックしたため、ズーム可能または移動可能ですが、コンソールから簡単に言うmap.setZoom(11)
と、マップは 11 にズームされます.. 入力map.dragable = true
して、マップをドラッグすることができます.. これは本当に好きではありません..
ユーザーがマップのドラッグとズームを有効にすることは世界で最悪のことではないので、それほど悪くはありません..しかし、それでもこれを無効にしたいと思います。何か案は?
編集
回答とコメントをありがとうございます。私は、悪意のあるものを JavaScript に入れないようにして、マップ変数を必要に応じて関数に渡すなどして、人々の速度を低下させることに頼るつもりです。