我尝试发送带有部分网页网址的POST请求作为参数。例如,在这个网址中:
http://testsite.com/confirmEmail/?token=abcdefg
我希望能够使用值abcdefg发送输入标记。我想让它响应不同的令牌值。有任何想法吗? 感谢
答案 0 :(得分:0)
这个答案假设他们会在这个页面上做一些动作,否则你会想要一个重定向。
<?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")
。如果你走这条路线,你需要注意哪种编码和您现在放入令牌的字符,因此它们不会被剥离,这可能会破坏您的验证过程。在示例中看起来像数字,所以你应该没问题。还记得有人仍然可以发布修改后的表单,因此您需要清理此令牌字段以防止注入,但希望这与此问题无关。