私は現在、自分のウェブサイトを過労にしており、これまでのところこの問題を抱えていたため、正しい文字エンコーディングを使用したいと考えています。UTF8文字エンコーディング、htmlentities、クロスサイトスクリプティング
マイHTMLやPHPファイルはUTF8でエンコードされている、私のHTMLヘッドは次のようになります。
<!DOCTYPE html><html><head><meta charset="utf-8" />.....
私はMySQLiをを使用して、このような私の接続を設定した:
$DB->set_charset("utf8");
私のデータベースはutf8_general_ciを使用しています照合。
私はすべてを正しく設定していると思います。
今私の問題: クロスサイトスクリプティングを回避するために、私everytimesが(にhtmlentitiesを使用)データを表示する際に、ユーザが<のようなHTML文字を打破するために、私のデータベースに保存されています>「「
echo(htmlentities($str, ENT_QUOTES, "UTF-8"));
しかし、以下のように...
どこに私のせいでXSSと表示に対する安全性を達成するための正しい方法は何ですか;?彼らはまた壊れて取得し、私のブラウザのみだけ& Aumlを表示SSAE $ strのはÄäÖöÜü&のような他の特殊文字が含まれていますutf-8文字ですか?私はこれらのトピックの中で完全なクラッシュコースが必要なのではないかと思う。 This solutionは既にこのパラメータを使用しているため、私の問題と一致しません。
この問題で私を助けることができれば非常に感謝します。 よろしくお願いします。 ルーカス
ロケールに問題はありますか?あなたのPHPプロセスのロケールをUTF8のロケールに設定した場合、どうすればいいでしょうか? –
お返事ありがとうございます!私のphp.ini内のdefault_charset設定を意味しますか?私はそれを "UTF-8"に設定しましたが、何の効果もありませんでした... htmlentitiesが私にとって正しい機能であるかどうかは本当に分かりません(http://php.net/manual/en/function)。 htmlentities.php)? 「すべての該当する文字」を意味しますか? – lukasl1991