ユーザーが連絡先のPHPページから電子メールを送信できるようにするためにメールフォームを作成しています。
私はREGEXを使用して電子メールアドレスを検証し、さまざまなフィールドで多くのチェックを実行します。
ユーザーが「間違い」を犯した場合、フォームは2ページ目に偏向され、すべてのフィールド(問題のないフィールドとそうでないフィールド)がエコーされ、問題のある場所が赤で表示されます(「キャプチャを入力するのを忘れた」 、「名前を入力するのを忘れた」など)。<input type='text'>
フィールドのエコーは、の値の$_SESSIONのおかげで行われます。
一重引用符を含む電子メールアドレスを入力することを思いつくまで、すべてが見事に機能しました(有効なため)
問題1: 旧友のjim_o'brienは、エコーされるとjim_oになり ます。
問題2: 電子メールの送信を24時間ごとに1つに制限したいので、Ipアドレスまたは...電子メールアドレスが24時間以内にすでに記録されているかどうかをDBでチェックします=> SQLSELECTが失敗する
質問:
- これらの2つの現象の理由は何ですか?
- 電子メールで一重引用符を受け入れると同時に、必要なチェックを行うことは不可能ですか?
- 副次的な質問:XSSまたはSQLインジェクションで同時に電子メールアドレスで禁止されている文字は何ですか?
どうもありがとう。