2009-06-03 5 views
1

状況安価で汚れたQ&Aストレージのために、SQLiteストアの単純なid-> jsonは妥当ですか?

私は、単純な(基本的に書き込み専用のWebアプリ)を書くための非常に圧縮されたタイムスケジュールを持っています。このアプリは主にjQuery主導型の質問ツリーです。質問やツリーはおそらく、サイトの立ち上げ前と終了後の両方で変更する必要があります。

回答はメールで送られます...私はおそらくそれらを保存する必要はありませんが、私はちょうどの場合に行くつもりです。

これは、非常に短い順序で共有ホストでスラップアップする必要があります。

私の提案戦略

質問ツリー自体

ほとんどjQueryとHTMLに質問木と検証を実装します。各質問の形式として、「質問テキスト」:「質問回答」を含むjavascriptオブジェクトとして保存された質問 - 回答状態を維持します。

フォームの検証はjQueryベースのみで、有効なJSONのみが挿入されていることを確認して、(後述のように)個々のフィールドのサーバー側の検証は行いません。 PHPを使用したユーザー

ハンドルセッション状態の識別

、各ユーザーに一意のキーとしてPHPのセッションIDを使用します。

それぞれの質問に答えて、簡単なAJAX呼び出しを行い、PHPセッションIDとそのオブジェクトのJSON表現を受け入れる非常に簡単なPHPスクリプトを作成します。 (。毎回それを送信するための理由は、ユーザーが質問に答える終了した場合、少なくとも、我々はいくつかのデータを取得するそうです)

ストレージ

ストレージは、このような(PHPが埋め込まれた)SQLiteのDBに処理されます。

CREATE TABLE q_and_a_storage (
    php_session_id text primary key, 
    json_storage text 
); 

サーバー側

PHP AJAXはスクリプトを受け取る非常にダムです。 DBをチェックしてセッションIDが存在するかどうかを確認し、必要に応じてINSERTまたはUPDATESをチェックします。また、挿入する前に応答が有効なJSONであることを確認します。

これは信じられないほど愚かであるか、それが妥当かどうかを知りたいだけです。私は考えていないいくつかの大きなセキュリティホールがありますか?

  • を、私たちは本当にする必要があるすべては私たちが送ることを確認され、この反復
  • にフォームの百万充填材の下に推定しています:

    物事の人々が知りたいしようとしています最初の電子メールにはデータが入っていますが、私はそれをちょうど保存しています

  • 質問セットを再調整する必要があり、どの質問を残すべきかを知る方法がほとんどありません。
  • 後でデータを分析する必要がある場合は、後でそのデータをCouchDBに送信してmap/reduceクエリを実行することができます。このモデルが魅力的です。
  • javascriptのみのフォーム提出のようなSEEMSは、ほとんどのスパムを阻止し、攻撃の唯一の利益はDBに保存された役に立たないJSONです。
  • 質問のセットの超高速開発時間と柔軟性は、ここで本当に重要な要素です。

答えて

1

非常に徹底的な説明、ありがとう。セッションIDを推測したり推測できる人は、回答を表すJSONを「遡及的に変更する」ことができます.JSONは「役に立たない」と言われていますが、その場合は、なぜあなたは最初の場所に保管していますか?)おそらく私はPHPセッションIDのセキュリティについて過度に不愉快に思えます(それが本質的に安全であれば、私の反対は崩壊します)。そのような遡及的な変更を行う際に潜在的なスパマーがいる場合は、検証レベルを追加したいと考えています。

+0

悪い考えではありません。 – danieltalsky

関連する問題