将url param注入html表单

时间:2015-06-29 09:58:01

标签: php

只是想找出最安全的做事方式,这样才不容易受到攻击。 说我有一个网址,如www.mysite.com?name=nick

这会加载带有表单的静态html页面。其中一个表单字段是

<input type="text" id="pName" value="" name="pName" readonly>

将url param放入此输入值的最佳方法是什么?基本上,我有一个应用程序,将由不同位置的几个人使用。我需要一种方法来识别谁正在使用它,所以我想我可以将他们的名字添加到网址中,然后将其注入我的表单。

任何信息,

更新

关闭评论,我已将其添加到index.php的顶部

<?php
session_start();
if (!isset($_SESSION['pName'])) {
    $_SESSION['pName'] = $_GET['pName'];
}
?>

然后输入就是这样

<input type="text" id="pName" value="<?php $_SESSION['pName'] ?>" name="pName" readonly>

这可以接受吗?

2 个答案:

答案 0 :(得分:1)

使用会话并将$_SESSION['YourSessionVariable']放入文本框。

<?php 
$valueForTextbox = '';
if(isset($_POST['yourSubmitName'])){
   $_SESSION['pName'] =  $valueForTextbox = $_POST['pName'];

}else if(isset($_SESSION['pName'])){
   $valueForTextbox = $_SESSION['pName'];
}
?>



<input type="text" id="pName" value="<?php echo $valueForTextbox;?>" name="pName" readonly> 

为什么?

如果我更改url GET参数怎么办?这也是安全问题..

此外,如果我必须在许多页面中维护该数据(比如完成向导),如果我从URL中删除了一些参数,则会产生问题。

使用GET参数查询字符串会非常大,可以轻松保存在会话中。

修改: 表单未提交时。从数据库中获取值而不是从查询字符串中获取。表单提交后,在SESSION中输入值。表单发布将继续更新该会话变量的值。

答案 1 :(得分:1)

如果要在URL中定义用户,则必须在服务器上检查用户是否已获得授权。

由于您需要一种安全的方法来识别授权用户,因此在调用表单之前会进行识别,例如通过登录。

登录时,您将用户的名字存储在服​​务器上,通常是在会话中,然后将他转发到表格。

如果用户尝试将表单调用给另一个未识别的用户,您将在服务器上实现此目的。表单返回,但用户与会话中存储的用户名不匹配。

现在,由于您已在会话中拥有该用户,因此如果您确实需要该网址中的用户,则会出现问题。原因可能是,您希望一次打开多个表单,或者您已授权访问其他用户的表单(例如管理员访问权限)。