我希望将保险身份证件传递给控制人员,同时获得看起来像的保险详情:
//获取:/保险/详情/ 123456789
但出于安全原因,我不想在查询字符串中传递此ID号123456789。 有人可以建议我最好的方式。我是MVC的新手。
由于
答案 0 :(得分: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帖子。
答案 1 :(得分:0)
您需要清理控制器中的输入,例如,如果客户已登录,您可以检查传递给控制器的ID是否真正属于客户。
请求中可通过的任何内容(无论是POST还是GET)都是可欺骗的。
您还应该考虑通过HTTPS提供页面。
E.g。 (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
...
}