0

假设我有一个如下所示的表单:

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

现在我还想包含一个数字标识符 - 称之为票证 ID。“这是机票历史记录,您要添加一些内容吗?” 用户不能修改它。

我的问题是......在表单提交中获取该票证 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 应该显示票证 id 6789”)记录,然后再检查它之外,还有什么其他的吗?

我在后端使用 PHP 和 MySQL,但我不确定我的问题是否特定于这些技术。

4

1 回答 1

0

使用会话 form.php

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

脚本.php

<?
session_start();
$ticket_id = $_SESSION['ticket_id'];
?>
于 2013-04-16T03:24:22.660 回答