1

それで、Dartを使用してMySQLサーバーとやり取りしたいと思っています。人々がこれをどのように行ったかを調べたところ、sqljocky になりました。ここで、メイン ファイルに sqljocky をインポートすると、次のエラーが表示されます。ここで何が問題になっているのでしょうか?また、Dartium で利用できないのに、なぜ Google は dart:io を作成したのでしょうか?

前もって感謝します!

4

1 に答える 1

5

このdart:ioライブラリは、Node.js と同様のサーバー側プロセスで使用できます。これにより、開発者はクライアントとサーバーの両方で 1 つの言語を持つことができます。サンドボックスの制限により、クライアント側 (どの言語でも) では実現できない、ネイティブ ソケットの作成、ネイティブ ファイル I/O などの機能を提供します。

SQLJockey は、ネイティブ ソケットを作成して MySQL サーバーに接続する機能を使用します。それはクライアント側で実行できるものではありません (または少なくともまったく簡単ではありません)。たとえコードがクライアント側になると、エンドユーザーによる変更の影響を常に受け​​やすいため、実行できたとしても実行すべきではありません (javascript を変更できます)。ブラウザで、ヒットしたページの動作が異なる)。サーバー側では、データベースに送信されたコマンドをサニタイズすることができ、他の誰かがサニタイズ ルールを変更できることを心配する必要はありません。そしてもちろん、MySQL のユーザー名とパスワードをクライアント側のコードに格納して誰でもアクセスできるようにすることは言うまでもありません。また、MySQL 接続が「localhost」や特定のサーバー/ドメインだけでなく、どこからでもログイン フォームを受け入れる必要があるという事実は言うまでもありません。あまりにも影響を受けやすくなります。

そのため、dart:io ライブラリは、Ruby (Rails や Sinatra など) スクリプト、または PHP や Node.js のようにサーバー側で実行されます。セキュリティ上の理由からブラウザーに実装できない機能を提供するため、クライアント側で実行するようには設計されていません (このセキュリティは、言語だけでなくブラウザーにも組み込まれています)。

于 2014-01-15T13:55:35.063 に答える