是否通过浏览器发送了没有name =“”的输入字段

时间:2014-08-20 01:42:32

标签: javascript ssl web credit-card stripe-payments

没有name属性的输入字段是否容易受到MITM攻击(没有SSL)或任何其他攻击?

例如:

<form action="" method="post">
    <label for="credit_card_number"><input id="credit_card_number" type="text" value="4111111111111111"></label>
    <button type="submit">Submit</button>
</form>

我正在做的是使用javascript获取值,然后发布到stripe.js,接收令牌然后清除CC字段的所有值(即使在我的测试中,值永远不会发送)在将表单提交给服务器之前(令牌字段是收到的唯一内容)。

我知道SSL将是一个好主意&#34;但是有必要防止攻击(例如MITM)吗?并且&#34;为什么?&#34;,如果是这样的话。

2 个答案:

答案 0 :(得分:1)

HTML spec表示如果表单字段与name属性配对,则该表单字段应仅视为有效,因此浏览器不应提交没有名称的表单字段(无论如何都无法通知将其解析为查询字符串)。

这与MITM攻击无关;您总是希望通过HTTPS为您的网页提供服务,以减少某人拦截请求并修改付款页面以获取详细信息并将其发送到其他位置的可能性。

答案 1 :(得分:1)

如果表单是在没有SSL的情况下提供的,那么MITM攻击可能会将JavaScript注入其中。然后JavaScript可以读取表单控件(即使它们没有名称属性)并将它们发送给攻击者。

如果您有一个输入敏感信息的表单,那么必须保护该页面。