【发布时间】:2012-04-16 21:59:55
【问题描述】:
我正在尝试创建一个表单,用户可以在其中输入他们的 id(用户名),它将作为变量附加到我的 php 脚本中使用的 url 中。这就是我所拥有的。
<?php
if(isset($_POST['submit']))
{
$id = $_POST['id'];
echo 'http://example.com/default.asp?action=data&id=$id';
}
?>
<form method="post" action="<? echo $_SERVER['PHP_SELF']; ?>">
<input type="text" name="id"><br>
<input type="submit" name="submit" value="Submit Form"><br>
</form>
它正确地收集了用户的 id,如果我只是回显 $id,它会输出正确的值,但是当我尝试回显 url 时,它只是输出 $id 而不是 $id 变量的实际值。我做错了什么?
【问题讨论】:
-
为什么不使用
GET方法并为其他参数添加隐藏字段? -
使用双引号作为回声。或使用单引号并将 $id 连接到 url 字符串。
-
你真的应该在谷歌上查找跨站脚本或 XSS,目前你在 10 行代码内有 2 种攻击途径......气味