#■htmlspecialchars()とは
PHP上でコードをテキストとして表示させる時に使うメソッド
エスケープを行うとも言う。
エスケープしないとXSSが行えてシステムに問題が起こる。
htmlspecialchars(第一引数,第二引数,第三引数);
▼第一引数
エスケープしたい文字を入れる。
変数でも良い。
▼第二引数
変換のパターンを入れる。
変換パターン | 説明 |
---|---|
ENT_QUOTES | ダブルクオテーション、シングルクオテーションどちらも変換 |
ENT_COMPAT | ダブルクオテーションのみ変換 |
ENT_NOQUOTES | ダブルもシングルも変換しない |
ENT_COMPAT | デフォルト |
▼第三引数
文字コードの指定
UTF-8など
###■htmlspecialchars()を使わない場合
コードがテキストとして表示されずコードの能力が発揮されている。
*危ない
<?php
$a = "<p>こんにちわ</p>";
echo $a;
?>
//結果 こんにちわ
###■htmlspecialchars()を使う場合
コードがテキストとして表示されていてコードの能力が効いていない。
*安全
<?php
$a = "<p>こんにちわ</p>";
echo htmlspecialchars($a,ENT_QUOTES,'UTF-8');
?>
//結果 <p>こんにちわ</p>
htmlspecialchars()を使わないとエンジニア側ではなくだれでもコードを書いていじる事ができてしまう。
安全性に問題がおきる。