HTML 注入:无法将 javascript 插入文本区域

HTML injection: cannot insert javascript into textarea

我正在测试我在 PHP 中制作的页面以进行 HTML 注入,但它没有按我预期的方式工作。

我正在尝试插入

<div onmouseover="alert(1)" style="position:fixed;left:0;top:0;width:9999px;height:9999px;">
</div>

在文本区域内。服务器端,我现在只想显示带有 var_dump 的 $_GET,但它甚至没有做到这一点:当我单击按钮时,它只是让我回到主页,而 #3377832596384266514 是添加到 URL。我在 PHP 中没有收到任何错误,所以可能是服务器问题 (Apache 2.4)。

我猜堆栈的某些部分是防御性的,比如当你将 javascript: 添加到 URL 并且浏览器摆脱它时,但我不知道在哪里看。我也试过

<script>alert(foo);</script>

和其他变体,然后 < 和其他一些字符被删除。

test.php
<!doctype html>
<head>
     <meta charset="utf-8">
     <title>Test</title>
</head>
<body>
    <form method="get" action="select.php">
        <p>
            <label for="select">Words
                <textarea id="select"
                       name="select"
                       cols="50"
                       rows="1"
                       maxlength="100"
                       required
                       autofocus></textarea>
            </label>
        </p>
        <p>
            <button>Send</button>
        </p>
    </form>
</body>
</html>


select.php
<?php
    var_dump($_GET);

编辑:文本区域而不是输入。

编辑:添加了所有代码。

输入标签不能有任何内容,这就是为什么你可以将其设置为自闭合元素<input />

也许你需要另一种方法

将表单方法从 GET 更改为 POST

GET 可能会导致服务器处理 URL.

中某些 标记 的方式出现问题

OP 验证这解决了问题。