2016-12-02 8 views
0

私はHTMLサイトを持っており、PHPコードを使用して連絡先ページを管理しています。現在、セキュリティスキャンのURLインジェクションアラートに関する問題に直面しています。問題は2行のPHPコードに続くが、日付入力を検証できないことが判明しました。PHPサイトでのURL注入問題

<div class="field calendar"><input name="contact-arrival" type="date" placeholder="Arrival Date" id="contact-arrival" value="<?php if (isset($_POST['arrival']) && !empty($_POST['arrival'])) { echo $_POST['arrival']; } else { echo '';} ?>" readonly /><i class="fa fa-calendar-o"></i></div> 

<div class="field calendar"><input name="contact-departure" type="date" placeholder="Departure Date" id="contact-departure" value="<?php if (isset($_POST['departure']) && !empty($_POST['departure'])) { echo $_POST['departure']; } else { echo '';} ?>" readonly /><i class="fa fa-calendar-o"></i></div> 

答えて

1

あなたはにhtmlentitiesを使用してポストされたデータをエスケープする必要があります

echo htmlentities($_POST['arrival'], ENT_QUOTES, 'utf-8'); 

注:フォームがPHPスクリプトに投稿されると、あなたはまた、フォームデータを検証する必要があります。

+0

投稿要求を受け取った後、フォームはHTML検証を使用して入力を検証します。他に良いアイデアがあれば教えてください。ありがとう。 –

+0

ブラウザとサーバーの両方で検証します。ブラウザで検証すると、無効なデータでサーバーに要求が送信されます。サーバー上で検証を行うと、SQLインジェクションの試行が妨げられ、「ダーティ」データがデータベースに格納されなくなります。 データフィルタリングの詳細については、http://www.phptherightway.com/#data_filteringを参照してください。 – Euperia