安全地获取以表格形式呈现的信息(PHP)

时间:2013-04-16 02:41:08

标签: php forms

假设我有一个看起来像这样的表单:

<form action="/script.php" method="post">
<input name="my_input" length="80" />
<input type="submit" value="submit" />
</form>

现在我还想要包含一个数字标识符 - 称之为票证ID。 “这是票证历史,你想添加一些东西吗?”用户无法修改它。

我的问题是...在表单提交中获取该票证的最安全的方法是什么?

完成它没有问题,但我的问题是围绕安全性。所以这里是我能想到的变量的方法:

<form action="/script.php" method="post">
<input name="my_input" length="80" />
<input type="hidden" name="ticket_id" value="12345" />
<input type="submit" value="submit" />
</form>

<form action="/script.php?ticket_id=12345" method="post">
<input name="my_input" length="80" />
<input type="submit" value="submit" />
</form>

我担心有人可以制作恶意POST并提交它并将他们的评论附加到不同的票证上。即,从他们自己的服务器/浏览器/工具撰写POST。如果我使用GET这样做,那么他们肯定可以通过更改url变量来实现这一点 - 也可以通过POST也这样做,对吗?

我可以检查用户当然是否拥有该票证并进行其他验证,但从根本上说,您如何向用户提供数据并安全地以HTML格式重新获取?

除了在服务器端创建一个唯一的序列号(“FORM 12345应该出现票证号6789”)以及然后再检查之外,还有什么吗?

我正在使用PHP&amp;虽然我不确定我的问题是针对这些技术的,但后端有MySQL。

1 个答案:

答案 0 :(得分:0)

使用会话 form.php的

<?
session_start();
$_SESSION['ticket_id'] = '1234';
?>

的script.php

<?
session_start();
$ticket_id = $_SESSION['ticket_id'];
?>