1

我想将被保险人 ID 传递给控制器​​,同时获取如下所示的被保险人详细信息:

// GET: /Insured/Details/123456789

但出于安全原因,我不想在查询字符串中传递这个 ID 号 123456789。有人可以建议我最好的方法。我是 MVC 的新手。

谢谢

4

2 回答 2

0

尝试通过 POST 将值作为隐藏参数提交。不过,您需要使用表单来进行 POST 提交。你不能使用链接。

<form method="POST" action="/Insured/Details">
    <input type="hidden" name="insuredid" value="123456789"/>
    <input type="submit"/>
</form>

然后,您将通过请求参数获取该值。如果使用 Java servlet,它看起来像这样:

String myInsuredId = request.getParameter("insuredid");

我想它看起来也与其他平台相似。

注意:虽然将值作为隐藏参数传递会隐藏数据,但这不会阻止人们嗅探提交的数据或检查页面的 HTML 源。如果你真的想让这个安全,你需要使用某种形式的加密/安全。尝试查看 HTTPS 帖子。

于 2013-02-28T16:15:28.130 回答
0

您需要清理控制器中的输入,例如,如果客户已登录,您可以检查传递给控制器​​的 ID 是否真正属于客户。

请求中可通过的任何内容(无论是 POST 还是 GET)都是可欺骗的。

您还应该考虑通过 HTTPS 提供页面。

例如(asp.net MVC / C#)

public ActionResult Details(string id)
{
    if (Check(id) == false)
    {
        // Handle invalid input
        throw new HttpException(404, "HTTP/1.1 404 Not Found");
    }

    // create the model
    ...
}
于 2013-02-28T16:26:26.967 回答