1
私は問題があり、エンコードされたhtmlをmySQLデータベースに保存しています。 しかし、私はデコードし、変数をエコーします。出力に二重引用符を追加します。PHPは、mySQLフィールドのecho変数を引用符で囲みます。
コード:
$content = mysqli_fetch_array($r);
$data = $content['contentHTML'];
$html = html_entity_decode($data,ENT_COMPAT, 'UTF-8');
$output = <<<MY_MARKER
$html
MY_MARKER;
echo $output;
$html = "I am going to hax0r your site, hahaha! <script type='text/javascript'> window.location = 'http://www.example.com/' </script>"
が、ブラウザにエコーする場合には、「追加されます
この作品:。
$str = <<<MY_MARKER
<script type="text/javascript">
document.write("Hello World2!<br>");
</script>
MY_MARKER;
echo $str;
とこの作品:
を10$userInput = "I am going to hax0r your site, hahaha! <script type='text/javascript'> window.location = 'http://www.example.com/' </script>";
$str = <<<MY_MARKER
$userInput
MY_MARKER;
しかし、私のコードは引用符で出力されるので、javascriptがブラウザに表示されます。
それは...事前に
おかげ
screen grab of browser output, and web inspector
MySQLデータベースに格納するmysqli_real_escape_stringを使用することができますあなたは 'contentHTML'カラムにあるものの例を教えてください – RiggsFolly
あなたは飾りを印刷しています –
私はあなたのサイトha hahaに行くつもりです! & lt;スクリプトタイプ= &#039; text/javascript &#039; & gt; window.location = &#039; http://www.example.com/ &#039; & lt;/script & gt;データベースから –