在提出这个问题之前,我承认这种方法非常气馁而且不安全。我知道要实现这一点是通过SSL。
但是,我正在开发一个HTML5应用程序(似乎实施SSL方法需要花费很多时间),我想知道POST表单内容的最佳方式。
即我有以下表格
<form id="someform" name="someform" method="POST" action="some/server/url">
此表单的提交方式(目前)是使用ajax $(&#34; #someform).serialize()等等。
使用此实现,我面临(至少)这两个直接问题:
我想知道是否有某种方式我至少可以(混淆POST-ed)值。
我遇到了这个很棒的http://www.jcryption.org/工具,但不知道我应该如何实施它来解决我面临的问题。
ps:我再次意识到,与处理服务器端的所有执行相比,依赖客户端脚本的安全性较低。
我使用的框架+语言是:CodeIgniter + PHP + JavaScript(jquery)
第1修正案:
我确信至少有一个使用这个理论的工作
首先,我并不太担心我的数据的机密性部分,即即使其他人知道它是什么,POST-ed值也不会提供任何有价值的信息。
但我担心的是POST值的完整性和真实性。这只是意味着一旦传输信息(一旦点击提交按钮),其他任何人都不应该篡改信息,任何人都不能伪造或创建假值(欺骗服务器)。
这个理论导致数字签名,其中(理论上)我应该以某种方式使用服务器PUB-key签署POST-ed值,然后使用服务器PUB-key散列POST-ed值,最后发送两个原始值POST值和散列值。
在发送POST-ed值之前,客户端必须请求服务器PUB-key,因此客户端可以对POST-ed值进行散列。服务器可能存储PUB密钥信息以及SESSION信息。
然后服务器必须(再次)散列(这次使用服务器PRI-key)原始的POST-ed值(由客户端发送)并比较两个散列值。如果这些值相同,则仅表示它是真实的。
现在我尚未理解的部分是如何......
有没有关于如何做到这一点的工具/框架/插件/教程/示例?因为从头开始构建整个公钥基础设施对我来说太过分了(更不用说我有限的时间了)
答案 0 :(得分:3)
更进一步,并意识到用户也可以加密伪造的数据 SSL无法帮助抵御这种篡改。
这是一个网络发展公理:一切都可以在客户端伪造。周期。强>
因此,与其他任何网站一样,只需验证服务器端的输入,而不是加密任何内容。
使用sessions
存储用户无权访问的数据。
答案 1 :(得分:-1)