1

次のような被保険者の詳細を取得しながら、被保険者IDをコントローラーに渡したい:

// GET: /被保険者/詳細/123456789

しかし、セキュリティ上の理由から、この ID 番号 123456789 をクエリ文字列に渡したくありません。誰かが私に最善の方法を提案できますか。私はMVCが初めてです。

ありがとう

4

2 に答える 2

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 に答える
0

POST を介して非表示のパラメーターとして値を送信してみてください。ただし、POST 送信を行うにはフォームを使用する必要があります。リンクを使用することはできません。

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

次に、リクエスト パラメータを介して値を取得します。Java サーブレットを使用する場合は、次のようになります。

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

他のプラットフォームでも同様に見えると思います。

注: 非表示のパラメーターとして値を渡すと、データが表示されなくなりますが、送信されたデータを傍受したり、ページの HTML ソースを確認したりすることはできません。これを本当に安全にしたい場合は、何らかの形式の暗号化/セキュリティを使用する必要があります。HTTPS 投稿を調べてみてください。

于 2013-02-28T16:15:28.130 に答える