【发布时间】:2015-08-13 19:44:16
【问题描述】:
我制作了简单的 tryItYourself 类型代码编辑器。在文本区域中,我编写了我的代码。
当单击按钮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 Auditor 拒绝执行脚本 'http://localhost/textEditor.php' 因为找到了它的源代码 请求内。审核员已启用,因为服务器未发送任何内容 一个“X-XSS-Protection”或“Content-Security-Policy”标头。
【问题讨论】:
-
你在使用某种框架吗?
-
不,我没有使用任何框架。我在 apache web 服务器上使用 php。
-
您的浏览器阻止了该脚本的显示,因为它认为这是基于跨站点脚本的攻击 (XSS)。
-
但是当我简单地在另一个文件中使用时,例如 document.write('hello'); ?> 它会在浏览器中显示 hello。
-
如果它看起来像跨站点脚本攻击,那么我如何在我的 tryItYourself 中使用 javascript。
标签: javascript php