& lt; script>标记没有在php echo语句中呈现


<script> Tag is not rendering within the php echo statement

我制作了简单的tryItYourself类型codeEditor。进入文本区域,我写我的代码。当单击按钮renderCode时,代码将呈现在它旁边的div中。但是每当我在文本编辑器中使用<script>标签时,它不会渲染标签内的任何内容。

代码如下:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
<style>
#area {
    width: 48%;
    height: 500px;
}
#showCode {
    float: right;
    width: 48%;
    height: 500px;
    margin-top: 5px;
    border: 2px solid black;
}
</style>
</head>
<body>
<form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']) ; ?>" method="post">
<input type="submit" value="rederCode" style="display: block"><br>
<textarea id="area" name="code" placeholder="Enter your code here" >
<?php 
if ($_SERVER['REQUEST_METHOD'] == "POST") {
echo $_POST["code"]; 
}
?>
</textarea>
<div id="showCode">
<?php
if ($_SERVER['REQUEST_METHOD'] == "POST") {
echo "'". $_POST['code'] .  " ' "; 
}
?>
</div>
</form>
</body>
</html>

当我使用<script>标签时,它向我显示控制台内的错误:

XSS审计器拒绝执行脚本'http://localhost/textEditor.php',因为找到了它的源代码在请求内。由于服务器没有发送任何内容,因此启用了审计器一个'X-XSS-Protection'而不是'Content-Security-Policy'头。

浏览器检测到代码中的跨站点脚本漏洞。

在请求

中找到了它的源代码

表示浏览器没有运行脚本,因为脚本的内容是在$_POST中发送的。如果您确定您的页面是安全的,不受XSS漏洞的影响,请在文件开头添加以下PHP:

<?php
    header("X-XSS-Protection: 0");
?>