2011-01-26 7 views
3

私たちのサーバにmysql dbに保存された一連のHTMLベースのリソースを書いています。リソースにはイメージ参照が含まれており、相対パスとして格納されます。リモートアクセスを提供せずにサードパーティのサイトにmysql dbコンテンツを埋め込む方法

管理パネルにログインして、リソースを非常に簡単に作成、編集することができます。

このビットはすべて完了しており、正常に機能しています。

ただし、このリソースは、パッケージ化されたホストとホストされたホストの2つの方法で提供したいと考えています。実際の問題を提供しているのは、ホストされたソリューションです。

私たちはデータベースとすべてのイメージリソースをホストしたいと考えていますが、他のユーザーが自分のサイトでホストするための一連のテンプレート。これは、テンプレートを適切にブランド化し、自分のURLでリソースを利用できるようにするためです。

http://www.example.com/discojoe 

私に本当の頭痛を引き起こしている私は、このプロセスに持っている二つの質問があります:

私たちのMySQLサーバにも、読み取り専用アクセスを提供する明白なセキュリティの含意を実現します。私が考えている唯一の選択肢は、サーバー上で実行されている一部のサーバーサイドコードです。要求されたときに、要求されたデータをユーザーに返送します。これにより、mysqlに接続する必要がなくなります。

上記のタイプのシナリオをオンラインで読んだことがありますか、またはこのソリューションにどう対処するかについてのいくつかの指針を教えてください。

•データをストリームするユーザー(上記の解決策が分かりやすい場合)については、HTMLコンテンツ内でその場でイメージSRC値を更新する方法を教えてください。データをデータベースから取得すると、データベースから相対URLとして格納する必要がありますが、指定した絶対URLを使用して、すべてのイメージsrcsを相対URLから絶対URLに変換します。

答えて

2

私たちのMySQLサーバにさえ 読み取り専用のアクセスを提供する明らかなセキュリティ 意味合いを実現。 私が思う唯一の選択肢は、 サーバーで実行されているサーバーサイドコードです。要求されたときには、要求されたデータをユーザーに返信します。これにより、mysql接続を にする必要がなくなります。

PDOプリペアドステートメント(SQLインジェクションに対して安全)で事前定義されたクエリを使用してREST APIを作成することができます(私はJSONを返します)。ちょっとした気を使って、それをかなり安全にすることができます。もちろん、リソースを保護する必要がある場合は、シンプルなAPIキーを使用してシステムに認証を追加する必要があります。私はあなたがCSRF($token = md5(uniqid(rand(), TRUE));)を防ぐのと同じようにこれらの鍵を簡単に生成できると思います。たぶんあなたはもう少し追加してくださいentropyしかし、私はこれで十分だろうと思う。しかし、実際に正しく実行したい場合は、代わりにoauthを使用してください。


少しのmod_rewritingで、かなりのURLを書くことができます。

(上記溶液が賢明である場合)、我々は にデータをストリームユーザーのため

、 はどのように私は HTMLコンテンツ内でその場で 画像SRC値を更新して行くことができます。データベース内の相対URLとして を相対URLとして保存する場合は、 データベースからデータを取得するときに、 srcsを絶対から絶対値に変換したいとします。指定する絶対URLは です。

私はあなたがこれを達成するためにany of the many available template languagesを使用できると思います。 Even jquery has one built-in

+0

Alfredさん、ありがとうございます。ただ、RESTを見ています。これらのリンクはすべて見た目がよく見えますが、私は認証に関するコメントを感謝します。私はそれが要件を超えていると思っていないので、そこにいくつかのポインタを持っていると良いです。 – discojoe

+0

@discojoe問題なし:) => http://www.infoq.com/articles/rest-introduction – Alfred

1

RESTスタイルのWebサービスを作成します。つまり、いくつかのサーバーコードを使用してテンプレートをロードし、URLやその他のものを(絶対的に)変更し、HTMLの断片(またはCSS)としてクライアントに送信することで、データ要求に応答するHTTPサーバーをセットアップします)。

あなたのユーザーは、別のWebサーバー上で実行されている場合、HTTPクライアントパッケージを使用してWebサービスを消費し、結果のコードフラグメントをページに組み込んで送信できます。

また、iframeオブジェクトで機能するようにコードフラグメントを構築することもできます。その場合、ユーザーはiframeオブジェクトをエンドユーザーに配信するためのコードを自分のサーバーへの参照と共に構築します。

最後に、WebサービスがXMLまたはJSONを提供し、エンドユーザーのブラウザでAJAXスタイルのjavacscriptによって消費される可能性があります。

ランダムなクライアントからのmySQLテーブルサーバーへの直接アクセスを防止することは、絶対に正しいです。

+0

ありがとう、これは有望だと思います - 私はちょうどその時点でRESTを読んでいます。 – discojoe

関連する問題