Html 在表单中使用隐藏字段发送敏感数据是一个好的选择吗?

Html 在表单中使用隐藏字段发送敏感数据是一个好的选择吗?,html,django,forms,security,websecurity,Html,Django,Forms,Security,Websecurity,我对web安全不太熟悉,但正在尝试开发基于django的应用程序。对于支付,我使用Payu支付网关,按照文档成功集成 在支付url中,我必须发布一些敏感信息,如-商户密钥、txnid以及用户信息,对于敏感数据,我使用隐藏字段,但我认为这不是一个好的选择,因为任何人都可以在源代码中看到我的敏感数据 <form action="https://test.payu.in/_payment" name="payuForm" method="post"> <input type="hid

我对web安全不太熟悉,但正在尝试开发基于django的应用程序。对于支付,我使用Payu支付网关,按照文档成功集成

在支付url中,我必须发布一些敏感信息,如-
商户密钥、txnid
以及用户信息,对于敏感数据,我使用隐藏字段,但我认为这不是一个好的选择,因为任何人都可以在源代码中看到我的敏感数据

<form action="https://test.payu.in/_payment" name="payuForm" method="post">
<input type="hidden" name="csrfmiddlewaretoken" value="pOz2jZlcwLuLJRfBor9xqr4KIXtqGUCmcUSdZl6QeIXZnKc00ApNU2BxInA94Esy">
<input type="hidden" name="key" value="123456789">
<input type="hidden" name="hash" value="98231e7321875de86639070b07a1940effad7cac37e15e277f62e6d9c9488085cd060a3b9963864f2b10a334f2c04be4387b3fe24422d01cf5ed49d1a54c39f0">
<input type="hidden" name="txnid" value="833657e26b12fde34b620c67a3a8646c">
<input type="hidden" name="amount" value="1.0">
<input type="hidden" name="email" value="pankaj@gmail.com">
<input type="hidden" name="firstname" value="Pankaj">
<input type="hidden" name="phone" value="9950542612">
<input type="hidden" name="productinfo" value="Message showing product details.">
<input type="hidden" name="surl" value="http://127.0.0.1:8000/orders/payment/success">
<input type="hidden" name="furl" value="http://127.0.0.1:8000/orders/payment/failure">
<!-- <input type="hidden" name="service_provider" value="" /> -->

<div class="form-group">
    <div class="col-md-12 col-sm-12">
        Amount : 1.0
    </div>
</div>
<div class="form-group">
    <div class="col-md-12 col-sm-12">
        Purpose : Message showing product details.
    </div>
</div>
<div class="form-group">
    <div class="col-md-12 col-sm-12">
        Name : Pankaj
    </div>
</div>
<div class="form-group">
    <div class="col-md-12 col-sm-12">
        Email : pankaj@gmail.com
    </div>
</div>
<div class="form-group">
    <div class="col-md-12 col-sm-12">
        Mobile : 9950542612
    </div>
</div>
<div class="form-group">
    <div class="col-md-12 col-sm-12">
        Transaction ID : 833657e26b12fde34b620c67a3a8646c
    </div>
</div>
<div class="form-group">
    <div class="col-md-12 col-sm-12" style="padding-bottom:20px;padding-top:20px;">
        After clicking 'Pay Now' button, you will be redirected to PayUMoney Secure Gateway.
    </div>
</div>

<div class="form-group">
    <div class="col-md-12 col-sm-12">
        <input type="submit" class="btn btn-success btn-sm" value="Pay Now">
    </div>
</div>

金额:1.0
用途:显示产品详细信息的信息。
姓名:Pankaj
电邮:pankaj@gmail.com
手机:9950542612
事务ID:833657e26b12fde34b620c67a3a8646c
单击“立即付款”按钮后,您将被重定向到PayUMoney安全网关。

这是将数据发布到url的唯一方法吗?我尝试使用重定向发布数据,但由于一些安全问题,我们无法使用重定向发布数据-


如果有人能帮助理解这一点。

您不应该与隐藏字段共享敏感信息,因为这可能导致严重的数据泄漏


但是,如果您需要将一些相关信息共享到一个服务到另一个服务,那么您可以使用相关外键(例如userid、sessionid等)通过数据库调用来实现,并且您可以使用后端进行dbcall,这可以根据您的需要进行安全保护

如果您将此类敏感数据发送到第三方服务端点。您可以从浏览器访问这些详细信息。即使您使用像js框架这样的前置框架。但如果这是确认页面,则这些详细信息属于输入数据的同一用户。从这个角度来看,这样发送是可以的。但这不是一个好的使用方法。这些数据仍然可以通过js注入或通过浏览器插件或扩展等进行检索。因此,一个解决方案是将此功能移交给支持的脚本(假设页面是通过php/jsp/asp创建的)。或者,在发送这些详细信息时,您需要使用强加密机制。还可以搜索关于HTTPS的信息

您所指的敏感数据是唯一的/属于每个用户?一个是支付网关提供商提供的我唯一的
商户密钥
,还有一些唯一且不可共享的数据这是确认页面吗?或者您需要允许任何用户填写表单并将提交发布到endpoint?@SANAHT确认页面我可以将数据发布到url,但用户也应该重定向到该页面,如果我使用backend这样做,则只能使用重定向,但这是HTTP的一个限制,即发布数据不能与重定向一起,有什么好的解决方案吗?我正在使用第三方,必须通过post发送数据,根据这些数据,第三方将处理用户,首先看看实际问题是什么。是否有您正在使用的后端,如asp、java等?如果是,则使用Http/Https客户端调用支付api的最佳方式,我很遗憾我错过了那个标记,但这对Django或任何其他平台都是一样的,这可能对Django有所帮助