gpt4 book ai didi

javascript - 使用 JavaScript/PHP 安全提交表单

转载 作者:行者123 更新时间:2023-12-02 18:41:17 27 4
gpt4 key购买 nike

在提出问题之前,我承认这种方法非常不鼓励而且不安全。我知道要通过 SSL 来实现这一点。

但是,我正在开发一个 HTML5 应用程序(似乎实现 SSL 方法会花费很多时间),我想知道 POST 表单内容的最佳方法。

即我有以下表格

<form id="someform" name="someform" method="POST" action="some/server/url">

此表单的提交方式(当前)是使用 ajax $("#someform).serialize() 等。

使用此实现,我面临(至少)这两个迫在眉睫的问题:

  1. 用户可以使用工具(即 TamperData | Firefox 插件)来修改发布的内容(拦截并修改)。
  2. 用户可以通过发送“假”提交来伪造数据(伪造)

我想知道是否有某种方式我至少可以(混淆 POST-ed)值。

我遇到了这个伟大的http://www.jcryption.org/工具,但不确定我应该如何实现它来解决我面临的问题。

ps:我再次意识到,与从服务器端处理所有执行相比,依赖客户端脚本的安全性要低得多。

我使用的框架+语言是:CodeIgniter + PHP + JavaScript (jquery)

第一修正案:

我确信至少可以使用这个理论来解决

首先,我不太担心数据的 secret 性部分,即 POST 值不会提供任何有值(value)的信息,即使其他人知道它是什么。

但我担心的是 POST 值的完整性和真实性。这只是意味着一旦信息被传输(一旦单击提交按钮),任何人都不得篡改信息,也没有任何人可以伪造或创建虚假值(欺骗服务器)。

这个理论导致了数字签名,其中(同样在理论上)我应该以某种方式使用服务器 PUB-key 对 POST-ed 值进行签名,然后使用服务器 PUB-key 对 POST-ed 值进行哈希处理,最后发送原始值POST 后的值以及哈希值。

在发送 POST-ed 值之前,客户端必须请求服务器 PUB-key,以便客户端可以对 POST-ed 值进行哈希处理。服务器可能可以将 PUB key 信息与 SESSION 信息一起存储。

然后,服务器必须(再次)对原始 POST 值(由客户端发送)进行散列(这次使用服务器 PRI key )并比较两个散列值。如果这些值相同,则仅表示它是真实的。

现在我还不明白的部分是如何......

有没有关于如何执行此操作的工具/框架/插件/教程/示例?因为从头开始开发整个公钥基础设施对我来说太过分了(更不用说我的时间有限了)

最佳答案

更进一步,您会发现用户也可以加密伪造的数据。
SSL 无助于防止此类篡改。

这是一个网络开发公理:一切都可以在客户端伪造。期间。

因此,无需加密任何内容,只需在服务器端验证您的输入,就像其他网站一样。

使用 session 来存储用户无权访问的数据。

关于javascript - 使用 JavaScript/PHP 安全提交表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16814826/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com