2010-12-19 15 views
-1

Hellloの友人は、ユーザーがdata.now私はワットすべてのケアは、私は私の間違った値がされないように取らなければならないデータを格納していたときにそこに保存することができますまたはそれはハックされていません保存フォームデータ

+1

あなたがしようとしていることについてもっと詳しく説明しなければなりません。フォームを保存しておく前に、投稿されたデータで何かをしたいと思っていますが、何をしたいのか分かりません。 –

+0

「間違った値」とは何か、データをどこに格納しているのかについてさらに詳しく説明する必要があります。 –

+1

あなたはおそらくこれを2つの別々の質問に分割するべきです。 「必要なデータの入手」と「セキュリティ問題の回避」は異なる問題です。 (後者のBTWはすでに重複しているので、その代わりにそれを検索してください)。 – Quentin

答えて

2

あなたが尋ねるのは、入力検証と呼ばれ、そこにはa lot of informationがあります。何か有用なものに入れてユーザーを確認すること

  1. は、主に次の2つの部分があります。

  2. ユーザーが何か有害なものを入れていないことを確認します。

前者は、クライアント側でJavaScriptを使用して最も一般的に行われます(一般的にスムーズなユーザーエクスペリエンスとポストバックが少ないためです)。ユーザー側の入力を信用してはならないので、サーバー側でも再確認してください。基本的には、ユーザー入力を信用していないんので、後者はサーバー側で行われなければならない電子メールアドレスの形式をチェックするための正規表現のようなもの、ドロップダウンリストの値をチェックするための列挙、など

を必要とします。これは、SQLインジェクション攻撃に対して文字列をエスケープし、バッファオーバーフロー攻撃に対してフィールド長を検証すること(これらはあまり一般的ではありません)などです。

+0

実際には消毒する。 – RobertPitt

2

まず、2つのセキュリティ手段について理解する必要があります。あなたが不要な検証の欠陥を削除した後にデータを検証する際にそのよう

  • 衛生
  • 検証

衛生は、データを掃除しています。

衛生は、見えない文字(スペース、タブ、改行など)を削除することから成り立っており、ボード全体で行われるべきです。

などif(strlen($_GET['key']) > 0)として、あなたのデータを検証した後、あなたのデータベースにデータを挿入されますが、これを行う方法は、PHPは、このようなmysql_real_espae_string()

などのデータをエスケープする機能を提供しています

データベースの種類によって異なります

このメソッドは、データベースエスケープと呼ばれます。

+0

これは本当に私を助けました。私はそれについてもっと研究します。テキストタイプの私の名前フィールドに次のようなものを挿入しました。 。私が投稿をクリックしたときに "hello"というメッセージが返ってきました。同じことがmysqlデータベースに保存されました。 –

+0

あなたはデータベースに挿入されたユーザーからデータを変更してはいけません。データ上でmysql_real_escape_stringを実行することを除けば、生のままです。 htmlページなどのデータを使用するインタフェースに応じて、データをエスケープしてからユーザーに表示します。この方法では、コード共有など、「