私はHTMLタグを受け入れたくありません。私は、使用strip_tags()は多分
、それだけ少ないよりも、より大きな、より意味するものではありませあなたは、人々が「< 『/』>」文字を入力できるようにしたい場合、私は、少なくともすべきだと思う、と「ARENタグとは関係ありません。
フリーテキストフィールドの入力時には、改行文字以外の制御文字(通常はどこでも望んでいない)よりもはるかにフィルタリングする必要はなく、UTF-8を使用している場合は、無効/冗長シーケンス。 「& LT;」あなたは出力バックページへの値は、あなたが、もちろん「<」ように逃げますはhtmlspecialchars()を使用するように覚えているでしょうとき
はその後、右、画面上の「<」リテラルとして表示されます?フォームの送信、データベース、その他のどこから来たものであっても、テンプレートのHTMLにテキスト値を出力するときはいつでも、htmlspecialchars()を使用する必要があります。
すべての入力を特定の制限付きフォーマットに一致させる非フリーテキストフィールドの場合は、正規表現を使用して一致させることができます。
とaddslashes()です。
ほとんどの場合、addslashes()は間違ったことです。経験則として、これを使わないでください。
addslashes()は実際のSQL文字列リテラルエスケープ形式と一致しないため、SQLエスケープには不十分です。したがって、addslashedのときでも危険な文字列を構築できます。 MySQLを使用している場合は、代わりにmysql_real_escape_string()を使用する必要があります。他のデータベースには、独自のエスケープ機能があります。それらを使用する(または、パラメータ化されたクエリを使用すると、テキストをSQLに手動でエスケープする必要がなくなります)。
出力 - に対処しようとしてどのような場合には(にaddslashes()それがすべてでHTMLの特殊文字で何かをしようとしないので、エスケープHTMLには不十分である。それはそれがために何ではありません。)
、入力フィルタリング段階でエスケープするのは後方です。代わりに、アプリケーションの内部にあるすべての文字列をプレーンテキストとして保持し、アプリケーションの途中でエスケープします:mysql_real_escape_stringがSQLクエリに参加するときに出かけるとき、htmlspecialchars() HTMLページへの出力などがあります。
私はCornifyがすごくクールだと思います。 – lynn
あなたは入力として姓と名を使用していますか?そうであれば、正規表現は妥当性を判断する素早い方法になります。有効な文字や数字を確認するだけです。 – Mark