12

一般的に見て、「1つのJavascriptファイルを作成し、クライアントとサーバーで同時に実行する」というテーマにより、Meteorアプリのソースコードがクライアントに公開されているようです。

特定のアプリのサーバー側のソースコードがクライアント側に公開されている場合、ランダムな人がそれらをコピーして非常によく似たアプリを作成するのは簡単ではないでしょうか。

サーバー側のコードは一般に公開されているため、悪意のある人がアプリのセキュリティホールを見つけるのは簡単ではないでしょうか。

たとえば、Meteor 0.5.0の新しいパーティアプリの例では、model.jsファイルがクライアント側にも送信されているようです。

私はここで何かを誤解していますか?

編集

これが私にはわからない部分です。

http://docs.meteor.com/#structuringyourappによると、

クライアントとサーバーのサブディレクトリ外のファイルは、クライアントとサーバーの両方にロードされます。モデル定義やその他の関数の場所です

よくわかりません。すべてのモデル実装(DBインタラクションを含む)がクライアントに送信される場合、アプリの安全性が低下し、他の開発者が簡単にコピーできるのではないでしょうか。

4

2 に答える 2

9

フォルダ内のコードserver/はクライアントに送信されません(http://docs.meteor.com/#structuringyourappを参照) 。

編集

第二部について:

含まれていないコード、client/またはserver/クライアント側とサーバー側の両方で実行するコードです。したがって、明らかにそれはクライアントに送信する必要があります。

そこにモデルコードを配置する理由は、レイテンシーの補正のためです。データを更新する場合は、クライアント側ですぐに更新してから、同じコードサーバー側で実行して実際にデータを「コミット」することをお勧めします。これが理にかなっている多くの例があります。

クライアント側で実行したくない「秘密の」モデルコードがある場合は、確かに2番目のserver/models.jsファイルを作成できます。

于 2012-10-18T02:31:47.713 に答える
1

クライアントサーバーアプリを保護する最善の方法は、データベース更新ロジックをクライアントから隠すのではなく、サーバーに明示的なセキュリティチェックを書き込むことです。

セキュリティモデルの詳細については、https://stackoverflow.com/a/13334986/791538を参照してください。

于 2012-12-14T01:21:48.920 に答える