2011-12-22 6 views
1

いくつかのサイト(例:https://www.owasp.org/index.php/Main_Page)を調べた結果、以下のプロセスが私にどのような危険を及ぼすかについてのEXPLICITの記載は見つかりませんでした。サニタイズ? HTMLとして出力されず、SQLクエリにも入りません

ユーザーが複数選択問題に回答しました。 "answer"を隠しフィールドとしてフォームを送信する。

.phpページはそれを受け取り(100文字未満であることを検証します)、正しい回答をデータベースから取得します。これは2つを比較します(==比較演算子を使用します)。

はその後、基本的に

echo "Wrong! The correct answer is ".$correctAnswer; //a hack presumably will always be wrong!!! 

を送信し、どのような損傷は、おそらく(最大100文字)をユーザ入力させるとがあるかもしれません

$playersAnswer = $_POST['checkAnswer']; 

if ($correctAnswer == $playersAnswer){ ....etc 

利点にはまり込みます私のために、私はストライプされているユーザーの答えの文字/記号/文字について心配する必要はありませんd変換される。したがって、私は完全な句読点、外国語の言葉、さらにはjavascript wwithout恐怖に関する質問を使用することができます!

+1

ので質問は正確には何ですか? –

+0

「次のプロセスが何を危険にさらすのか」と「基本的にどんなダメージがあるのか​​...」 – Gamemorize

+0

投票違反。 「避けるべき質問のタイプについてのFAQ」(http://stackoverflow.com/faq#dontask)を参照してください.-解決すべき実際の問題はありません。「他の人が私のように感じるのは不思議です。 "。これが言い方されているように、あなた自身の質問に既に答えたようです。 –

答えて

3

あなたがすべては比較にPOST変数を使用している場合:

$correctAnswer == $playersAnswer 

これに危険がありません。あなたが変数を使うどこ危険が始まる

- HTML出力では、データベースクエリに、exec()またはeval()コマンドで.....

+0

それは私が考えていたものです。説明をありがとう。 – Gamemorize

+0

... html出力で '$ correctAnswer'を使用しているため、その変数で解釈されるhtmlコードを許可するかどうかなどに応じて、サニタイズおよび/またはエンコードする必要があります。 – VolkerK

+0

@VollerKデータベース内のすべての質問は、手動で入力する前に私たちによって入力/審査されます。ウェブサイトではなく、データベース自体をハックして$ correctAnswerを使用しなければなりません。しかし、はい、あなたは正しいです。 – Gamemorize

関連する問題