在 POST 请求中从网页 url 发送令牌查询字符串参数

Sending token query string parameter from webpage url in POST request

我正在尝试发送 POST 请求,其中部分网页 URL 作为参数。例如,在这个 url:

http://testsite.com/confirmEmail/?token=abcdefg

我希望能够发送值为 abcdefg 的输入令牌。我想让它响应不同的令牌值。有任何想法吗? 谢谢

此答案假设他们将在此页面上执行某些操作,否则您需要重定向。

<?php

$token=$_GET['token'];

?>
<form method="POST">
<input type="hidden" name="token" value="<?php echo htmlentities($token, ENT_QUOTES);?>" />
<!--other form fields and submit button here-->
</form>

更新: 这是一个简单的答案,很容易理解,但是当然直接从 url 中回显一个 get 变量会让你进入 xss。有人编辑了我的答案以从该变量中删除引号,但 htmlentities() 也容易受到 xss 攻击。我相信现在合适的函数是 htmlspecialchars($token, ENT_QUOTES, "UTF-8")。如果你走这条路,你需要小心你现在放入令牌中的编码和字符,这样它们就不会被剥离,这可能会破坏你的验证过程。看起来它在示例中是数字,所以你应该没问题。还要记住,有人仍然可以 post 修改表单,因此您需要清理此令牌字段以防止注入,但希望这与此问题无关。