現在、xssからサイトを保護するために、すべての変数をフィルタリングしようとしています。私はあちこちでいくつかのことを読みましたが、それを行うための最良の方法は、使用する数字に必要なすべての文字をホワイトリストに登録することだと思います。
$adrnr = preg_replace("/[^0-9]/", "", $adrnr);
しかし、ドイツ語で問題が発生しているという言葉に関しては、ü、ä、öをホワイトリストに登録する必要があります。そうする方法はありますか?
入力をフィルタリング/変換/検証することはできます(またはすべきです)が、XSS防止は出力に対して実行する必要があります。これは、実行する必要があるのはコンテキストベースであるためです。htmlspecialchars()
出力の多くの場所に保存されますが、すべてではありません。OWASPXSS防止に関するチートシートを参照してください。
ドイツ語の名前の入力検証には、次のように使用できます。
preg_match('/^[a-zA-ZäöüßÄÖÜ ]+$/', $nachname)
HTML文字をエスケープするには、 htmlspecialcharsを使用する必要があります。