MySQLサーバーに支えられたDjangoを利用したサイトを構築中です。このMySQLサーバーは、テーブルデータの読み取りと書き込みを行うために、Webサイト以外の追加のソースからアクセスされます。データベースに接続するユーザーがローカルで実行するプログラムなど。
現在、ローカルで実行されているプログラムは、MySQL / Cコネクタライブラリを使用してSQLサーバーに直接接続し、クエリを実行しています。一般公開の最終リリースでは、コードまたは構成ファイルでデータベースへの接続文字列を公開するため、これは安全ではないようです。
私が検討している代替案の1つは、すべてのクエリをDjango Webサイト(ユーザーのログインとパスワードで認証)に送信し、サイトがユーザーに代わってクエリをサニタイズして実行し、結果をユーザーに返すことです。
これには、私が考えることができるいくつかの欠点があります。すべてのSQLクエリを処理することにより、Webサーバーの負荷が大幅に増大し、ホストの制限を超える可能性があります。さらに、PythonでSQL結果をシリアル化して送信し、クライアント側のC /C++でそれらを非シリアル化する方法を理解する必要があります。これは、記述および保守するための適切な量のカスタムコードになります。
このアプローチのその他の欠点は、人々が考えることができますか?
これは合理的に聞こえますか?もしそうなら、それに取り組むのを容易にすることができる何か。プロキシインターフェイスの開発に役立つPythonやCライブラリなど?
悪い考えのように聞こえる場合は、代替ソリューション、つまりこのタイプのプロキシSQLサーバーロジックに特化したPythonライブラリ、SQL接続文字列を暗号化して現在のソリューションを安全に使用できるようにする方法などの提案はありますか?
最後に、これは有効な懸念事項ですか?データベースには現在、ユーザーに関する非常に機密性の高い情報は含まれていません(最も機密性の高いのは、ユーザーの電子メールと、別のソースから再利用した可能性のあるサイトのパスワードです)が、将来的には、安全でない場合に懸念される可能性があります。