2017-03-06 6 views
0

https://ublostandfound.000webhostapp.comからアクセスできるウェブサイトを開発しました。 HTMLフォーム入力のタグを使用して、他のWebサイトにリダイレクトするようにWebサイトを取得しようとしているユーザーがいます。私は彼がこれをやっているかどうか完全には分かっていませんが、ユーザーが最初にフォームにタグを入力するのを防ぐ方法がありますか?のHTML形式の入力を防止する

答えて

-2

<&lt;になるようにHTMLエンティティをエスケープしてください。クライアントではなくサーバでこれを行うようにしてください。そうしないと悪意のあるクライアントが迂回する可能性があります。

+0

私はどのエンティティを変更するのか分かりません。 –

+0

@SanchitBatra *すべての* PHPを使用している場合は、ユーザが入力したものを表示するときに 'htmlentities()'を使用してください。 – Barmar

+0

これはエンティティのリストとその実行方法がありません。 – Ryan

-2

ベストプラクティスはサーバー上のユーザー入力を消毒することですが、サーバーの環境が悪い場合は誰でも簡単にこれを回避できます。あなたがサニタイズすることができます

いずれかの方法では、フォームからの入力を保存する前にこの機能

function sanitize(s) { 
     return s.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/"/g, '&quot;'); 
    } 
+0

ありがとうございました! –

+0

この機能の使い方を説明することが重要です。 – Ryan

+0

@ライアンはい私はまだ私がまだ失われていることを知った –

-1

を呼び出すことによって、各フィールドにHTMLトークンをチェックし、それらを取り除く(単にスクリプトを通じて実行可能ではないデータを作る意味します)投稿を拒否または拒否する。 (<の後に>をつけてください)

+0

'<'の後に '>'危険なものであり、交換する正しい場所は入力ではなく、出力されます。 – Ryan

+0

私はRyanに同意しない、無効なデータがシステムに侵入するのを防ぐ必要がある。単一の入力点を過ぎると、無効で危険なデータを保存しています。あなたが唯一の道のりであると信じている場所でそれを守っても、時間が経つにつれて、それは移行し、野生に新しい道を見つけることができます。サーバー上で停止し、簡単にスリープ。 –

+0

*あなたのデータを検証することは良いアイデアですが、それはあなたがエスケープすることから(つまり置換を実行して)アウトプットから免除されるわけではありません。有効な入力は、エクスプロイトと区別できません。私の姓にアポストロフィが含まれていて、SQLが適切に挿入できるようにしてください。 – Ryan

関連する問題